微信小程序获取用户信息

微信小程序获取用户手机号码(类似膜拜手机号授权),自己写的程序也用到了,查看微信小程序文档,原来微信提供了方法, <button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"> </button> 直接就可以 调取微信的授权方法如下图:

授权图片

具体方法如下

流程图.png

1.客户端调用wx.login,返回数据包含了js_code,用于获取openid(用户唯一标识)和sessionkey(会话密钥)。 2.拿到js_code后,将其发送给服务端,服务端拿它与微信服务端做交互获取openid和sessionkey。(也可以自己直接调用微信的接口,openid和sessionkey) (1)自己拿拿数据的方法 需要的参数为(appid,secret,js_code) wx.request({ url: 'https://api.weixin.qq.com/sns/jscode2session?appid=' + appId + '&secret=' + secret + '&js_code=' + code + '&grant_type=authorization_code', data: {}, header: { 'content-type': 'json' }, success: function (res) { var openid = res.data.openid //返回openid var session_key = res.data.session_key//返回session_key } }) (2). 服务器拿数据的方法 服务器拿数据的方法,更是简单:直接用js_code调用服务器的方法,服务器直接返回openid和sessionkey。(推荐用第二种方法,因为appid,secret保存到后台比较安全)

3.当用户点击了绑定用户手机号码<button>,微信调用方法: Page({ getPhoneNumber: function(e) { console.log(e.detail.errMsg) console.log(e.detail.iv) console.log(e.detail.encryptedData) //加密的用户信息 } }) 具体可以看一下文档https://mp.weixin.qq.com/debug/wxadoc/dev/api/getPhoneNumber.html,(拿session_key和encryptedData、vi解密手机号) 解密:微信提供了几种方法,让自己的服务器解密,最终拿到的格式为:

屏幕快照 2018-03-10 下午4.32.37.png

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏快乐八哥

HTML5 Video Player概览

从以下三个方面分析 1.浏览器和设备的市场份额 2.媒体格式的支持 通过服务器端detect浏览器发送请求时的user-agent。 ? 3.标签属性 属性支持...

1796
来自专栏React Native开发圈

React Native 圆形进度条组件

npm i--save react-native-circular-progress

951
来自专栏技术之路

wpf 解决 编码解码器无法使用提供的流类型 The codec cannot use the type of stream provided

之前做的ListBox里列大图https://cloud.tencent.com/developer/article/1032668 图片转换的时候这段代码 ?...

1799
来自专栏菩提树下的杨过

asp.net webform中submit按钮使用不当很容易犯的一个错误

webform中默认一个页面只能有一个form,有时submit按钮使用不当会产生一些奇怪的问题。 ? 比如这是一个网站的头部搜索部分,前端人员把“搜索”按钮用...

1825
来自专栏互联网软件技术

本地多图上传预览

1062
来自专栏hbbliyong

Handsontable Dropdown with key-value pair

1213
来自专栏菩提树下的杨过

Flex4中的ModuleLoader,Alert以及TitleWindow

1、ModuleLoader 在Asp.Net开发中,经常会把页面的公共部分封装成自定义控件ascx,以达到重用或动态加载的目的。在Flex4中MXML Mod...

2225
来自专栏大内老A

ASP.NET Core应用针对静态文件请求的处理[5]: DefaultFilesMiddleware中间件如何显示默认页面

DefaultFilesMiddleware中间件的目的在于将目标目录下的默认文件作为响应内容。我们知道,如果直接请求的就是这个默认文件,那么前面介绍的Stat...

1795
来自专栏技术博客

ExtJs三(实现验证码图片控制器)

在Extjs二(实现登录)http://www.cnblogs.com/aehyok/archive/2013/04/18/3028739.html,今天紧跟上...

673
来自专栏Python、Flask、Django

flask项目使用第三方实现上传文件/图片的功能

1132

扫码关注云+社区