从微信服务器获取用户信息,微信小程序Ⅴ [获取登陆用户信息,重点openID(详解)]...
♩ 背景
其实这篇文章几个月前就写完了,可是这段时间,微信小程序官方文档有了更新,同事在我本身的实际操做过程当中,发现以前写的过于繁杂,因此如今进行简化梳理,欢迎指摘.
语言框架:ThinkPHP3.2.3
更新时间:2018-07-10
♪ 步骤梳理
下面是小程序官方提供流程图:
♫ 具体实现
1、登陆获取用户惟一信息 openID/unionID
此方式,只须要两步操做便可,可是须要小程序端和项目服务器的代码配合进行操做,建议参考下官方说明 >>> wx.login(OBJECT)
步骤梳理:
> (1).获取临时登陆凭证—— code
> (2).将上述得到的 code 经过request 请求发送给代码服务器
> (3).请求接口地址:https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
> ;# 成功则会返回咱们所须要的 "openID/unionID"
具体实现:
①. 服务端代码处理
后面将会进行源代码的上传,具体代码在 "WxController.class.php" 中,可做参考
②.小程序端 js编码
我在此处设置了一个 "button" 按钮,经过点击而调用其中的方法逻辑,其实在实际开发中,自行将其中的代码提取调用就可;
/**
* 获取用户惟一凭证
*/
bingGetOpenID: function() {
wx.login({
success: function(data) {
console.log('获取登陆 Code:' + data.code)
var postData = {
code: data.code
};
wx.request({
url: 'http://fetowNew.com/wxApi/wx/getOpenID',//注意改为本身的服务器请求地址哦!
data: postData,
method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/x-www-form-urlencoded;charset=utf-8',
},
success: function(res) {
//回调处理
console.log('getOpenID-OK!');
console.log(res.data);
},
fail: function(error) {
console.log(error);
}
})
},
fail: function() {
console('登陆获取Code失败!');
}
})
},
③. 运行效果以下:
注意观察个人数据获取状况,你会发现其中包含了 "unionID",这是由于我在微信开放平台进行了绑定操做,若是你没有这样的操做,那么就不会有这个数据
提示:
UnionID 只在知足必定条件的状况下返回。具体参看 >>> UnionID机制说明
注意配置信息的填写,须要正确填写本身的数据哦,应该歧义不大php
2、新方法获取用户信息
若是你接触小程序时间较早,应该会知道,微信小程序官方以前是使用接口 wx.getUserInfo() 方法进行操做的,可是由于近期版本更新,如今有了新的方法,推荐阅读文档了解, wx.getUserInfo(OBJECT) 接口获取用户信息
①. 第一步,页面使用button引导
官方文档已作注明:请使用 引导用户主动进行受权操做html
最简单的使用方式就是,使用页面中的 Button 进行引导操做便可:
获取用户信息
②. 第二步,js文件进行绑定事件处理
在对应的 js文件中,建立相应的方法 bingGetUserInfo():
/**
* 获取用户信息
*/
bingGetUserInfo:function(e){
console.log(e.detail);
},
上述方法执行后的打印数据截图以下:
③. 第三步,后续处理
根据上一步获得的 e.detail 打印出的对象数据,直接进行提取所须要的数据(好比微信昵称和头像连接、性别等);
而后经过 wx.request() 存储到本身的服务器中便可;
注意(后面步骤,可继续也可中止,自行决定!):
> 其实,获取当前登陆用户的 "openID/unionID" 信息在前面"(一)"已经能够简单的得到了;
> 可是若是想继续当前的步骤的话:
咱们彻底能够直接经过得到的 "encryptedData",而后对其进行 算法对称解密操做,就能够获取到用户的 openID/unionID 这些敏感数据,而且文档中也提供了不一样语言的示例代码
步骤梳理:
1).获取临时登陆凭证(code)
2).根据上一步中微信端传来的参数 "code",在本地服务器中请求微信的接口地址,从而获得"session_key"
>接口地址为:"https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code"
3).服务端获取数据签名加密信息
④. 进一步的实现处理
小程序 js代码的补充扩展,其实仍是前面的 bingGetUserInfo()方法:
提示:web
以个人 PHP 代码为例,调用 WXBizDataCryptController 类的 wxDecrypt() 方法,传入前面所得到的全部参数便可算法
附一张数据反馈截图:
提示:
> 此时只要进行数据转化便可获得咱们所须要的 "openid/unionid" 重要信息;
> 好比,我须要用到此信息去数据库比对该用户的业务信息等;
> 固然,我建议的是在服务端获取到数据后就与本身的数据库进行匹配处理便可
♬ 附录
♦ 推荐参考:
♥ 源码下载
本文同步分享在 博客“moTzxx”(CSDN)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。数据库
从微信服务器获取用户信息,微信小程序Ⅴ [获取登陆用户信息,重点openID(详解)]...相关推荐
- imagepreview使用案例_微信小程序wx.previewImage预览图片实例详解
一.小知识 二.例子 1.wxml 2.wxss .container { box-sizing:border-box; padding:20px; } .previewimg{ float:left ...
- 下拉多选框 微信小程序_微信小程序下拉框组件使用方法详解
本文实例为大家分享了微信小程序下拉框组件的使用方法,供大家参考,具体内容如下 适用场景 1.省市三级联动 2.出生日期选择 3.性别选择 4.一般性的下拉选择等 一.省市三级联动使用 注意mode = ...
- 《微信小程序开发》 页面导航最强详解 | 如何对小程序页面进行跳转?
<微信小程序开发> 页面导航最强详解 | 如何对小程序页面进行跳转? 文章目录 <微信小程序开发> 页面导航最强详解 | 如何对小程序页面进行跳转? 一.微信小程序导航 二.命 ...
- pos请求 微信小程序_微信小程序蓝牙连接小票打印机实例代码详解
1.连接蓝牙 (第一次发表博客) 第一步打开蓝牙并搜索附近打印机设备// startSearch: function() { var that = this wx.openBluetoothAdapt ...
- 微信小程序Ⅴ [获取登录用户信息,重点openID(详解)]
♩ 背景 其实这篇文章几个月前就写完了,但是这段时间,微信小程序官方文档有了更新,同事在我自己的实际操作过程中,发现之前写的过于繁杂,所以现在进行简化梳理,欢迎指摘. 语言框架:ThinkPHP3.2 ...
- 获取附近小区信息_小程序获取当前位置加搜索附近热门小区及商区的方法
本文详细的介绍了小程序获取当前位置加搜索附近热门小区及商区的方法,分享给大家 两种方法:一种是腾讯地图获取,另一种是百度地图获取 我用的是腾讯地图获取步骤如下 1.话不多说,直接上干货 实现上图效果, ...
- java 显示天气的小程序_超级简单的微信小程序获取今日天气预报代码 小程序获取七日天气...
代码是天气api的小程序demo, 粘贴上js和wxml就可以运行看效果了, 有问题的加我qq 445899710, 可提供源代码, 效果如图 如果是测试, 请勾选配置 不校验合法域名.web-vie ...
- 微信小程序系列(7)如何用微信小程序写一个论坛?贴心代码详解(五)删帖页【完结篇】
源代码已开源,如果对你有帮助可以点个星:https://github.com/linkaimin/xdzs 写论坛不难,重点是各页面之间的信息传递! 先放成品图,虽然有点单调....但是麻雀虽小五脏俱 ...
- 小程序与后台 api接口数据交互详解(微信报修小程序源码讲解七)
完成用户授权登录逻辑后,接下来的开发工作大部分都是与后台 api 接口的交互,本节我们详细讲解一下小程序如何与 api 进行交互 . 小程序如何发送 http/https 请求到后台? 小程序请求 h ...
最新文章
- Swift中使用构建配置来支持条件编译-b
- python中如何定义一个数组_Python数组定义方法
- python卡尔曼滤波跟踪_使用卡尔曼滤波器以圆周运动跟踪机器人
- C#.net 支付宝接口
- WEB通用网关接口:CGI简单教程
- 使用docker运行dotnetcore站点
- wpf项目无法使用针式打印机_针式打印机的常见故障和解决方法2
- D-Link 老款路由器被曝多个高危漏洞,未完全修复
- 数据库技能实战进阶之常用结构化sql语句(中)
- 正坐标系及矢量知识,点乘与差乘,旋转
- 如何生成javadoc文档(JDK帮助文档)
- 企业污染排放数据库、海关数据库
- 优酷1080P的KUX视频如何快速转换成MP4格式
- 谷歌打开微信定位服务器地址,使用Chrome修改user agent模拟微信内置浏览器
- 微软和Google的盈利模式对比分析
- RStudio 开发环境配置
- 五线谱上的Linux旋律
- 你的手指上有几个螺(斗)?指纹决定你的性格
- 基于51单片机的脉搏心率心跳血压体温测量检测仿真(仿真+原理图+源码+论文)
- uC/Modbus 用户手册——第一节
热门文章
- Win10 下使用 ionic 框架开发 android 应用之搭载开发环境
- 一起学windows phone7开发(二十二.使用系统资源)
- 系统工具源码设计页面
- JS弹出窗口的运用与技巧(转)
- MySQL--更新自增列的潜在风险
- Open images from USB camera on linux using V4L2 with OpenCV
- BZOJ4543 POI2014 Hotel加强版 【长链剖分】【DP】*
- css3 :nth-child()选择器的使用
- 《Android编程权威指南》PhotoGallery应用梳理
- list array解析(总算清楚一点了)