300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 微信小程序解析unionid

微信小程序解析unionid

时间:2019-07-30 15:18:10

相关推荐

微信小程序解析unionid

微信小程序解析用户unionid等信息

调用wx.login获取 用户临时登录凭证code(有效期5分钟);调用wx.getUserInfo获取加密过的数据encryptedData和解密参数iv;将code、encryptedData、iv传给后台,并在后台调用微信auth.code2Session方法,然后将解析到的信息返回给前台。

前端代码示例如下:

注意:这里的wx.login和wx.getUserInfo调用顺序,先调用getUserInfo后调用wx.login会导致获取到的code和getUserInfo返回的加密数据不匹配,从而可能会导致解析unionid等用户信息失败!血的教训。

var app = getApp();const utils = require('util.js');/*** 获取用户信息*/function getUserInfo(callback) {let _this = this;/***1.判断用户是否授权过(获取用户信息)*/wx.showLoading({title: '加载中...',mask: true})wx.getSetting({success: function (setting) {if (setting.authSetting['scope.userInfo']) {wx.login({success(loginRes){wx.getUserInfo({success: function (res) {console.log('getUserInfo获取用户信息:', res);let userInfo = res.userInfo;wx.request({url: utils.baseUrl + 'index',data: {code: loginRes.code,iv: res.iv,encryptedData: res.encryptedData,},method: 'GET',header: {'content-type': 'application/json'}, // 设置请求的 headersuccess: function (data) {console.log('解析unionId:', data);if (data.data.resultCode == '1') {userInfo.openId = data.data.data.openId;userInfo.unionId = data.data.data.unionId;wx.setStorageSync('userInfo', userInfo);//执行回调函数if (callback) {callback();}wx.hideLoading();} else {wx.hideLoading();utils.showToast(data.data.resultMsg);}},fail(err) {wx.hideLoading();}})},fail: function (err) {_this.getUserInfo();}})},fail(loginErr){wx.hideLoading();}})}else {//没有授权的情况,跳转到welcome页面_this.getUserInfo();}},fail(){wx.hideLoading();}})}module.exports = {getUserInfo: getUserInfo}

后台代码示例,官方在文档中提供了:php,python,node.c++的示例代码,java版本,在网上可以搜的到,很多开发者在博客中提供了java示例代码,详情见官方文档服务端获取开放数据

ok,搞定收工!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。