golang开发微信小程序后台获取openid与小程序码.pdf
golang开发微信小程序后台获取openid与小程序码.md 2022/10/19
微信openid是表示用户在当前应用中的唯一标识,比如小程序,微信公众号等,这些都算是一个应用。
如果有多个应用,同一个用户的openId可能并不相同。
1. 微信小程序登录流程
如下图所示为微信开发者文档中提供的小程序登录流程图
如图中所示,在小程序前端中使用wx.login()获取code后,调用后台程序,由后台再根据appid +
appsecret + code继续请求微信接口服务,从而得到openid ,并返回给前端。
因为appid和appsecret是小程序的唯一标识,属于绝对私密信息,所以通过后台程序调用微信接口服务就理
所应当了。
2. 小程序前端实现
示例
1 / 4
golang开发微信小程序后台获取openid与小程序码.md 2022/10/19
App({
onLaunch: function() {
var self = this;
// 展示本地存储能力
var logs = wx.getStorageSync( 'logs') || []
logs.unshift(Date.now())
wx.setStorageSync( 'logs', logs)
// 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
var Params = {
code: res.code, //临时登录凭证
};
//生成加密key
wx.request({
url: '', // *********此处填写第三方的接口地址*********
data: '=' + JSON.stringify(Params),
header: {
'content-type': 'application/json'
},
method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
success: function(res) {
var openid = res.data.RntData.openid //返回openid
self.globalData.openid = openid;
console.log(openid);
}
})
}
})
调用wx.login()获取临时登录凭证code ,并回传到开发者服务器。
接收后台响应结果,并解析获取openid。小程序端与后台交互具体接口可变,此处为一个示例。
3. 小程序后台实现
后台调用auth.code2Session接口,换取用户唯一标识 OpenID、 用户在微信开放平台帐号下的唯一标识
UnionID (若当前小程序已绑定到微信开放平台帐号) 和会话密钥 session_key。
查看微信开发者文档中auth.code2Session接口介绍,后台只需要根据appid、appsecret以及前端传入的
code组装http get请求访问微信接口服务即可获取openid。
请求url地址:
GET /sns/jscode2session?
appid=APPID&secret=SECRET