微信小程序获取用户唯一标识openid代码,官方文档关键点一笔带过,网上找了半天基本都是按照官网文档写的攻略,用处不大。现在整理一份详细的文档,供小程序初学者学习。
第一步:首先是小程序端,代码比较简单,但是关键点却不容易发现。app.js里,调用wx.login(),获取code,然后调用wx.request,一定看好,
url不是官方网站提供的“https://api.weixin.qq.com/sns/jscode2session”,这个地址小程序是没法直接访问的,必须有后台的支持,就是你需要编写一个后台程序,通过后台代码来访问官方提供的网址,此处的url指向的就是你调用官方接口的后台代码,调用成功后,底部显示了openid
第二步,小程序的url指向的接口地址代码,是我自己编写的后台程序,这里注意,官方接口有4个参数,这四个参数可以由小程序端传值,也可以自己后台复制,看自己需要。这4个参数分别是appid和secret(登录官方后台自己账号获取)、js_code,就是小程序端传过来的code值,还有grant_type直接写上authorization_code,即可。
我这里是C#代码,用get方式访问接口获取数据,然后以json格式返回给小程序端
除了openid之外,还有获取用户简单信息的方法,getuserinfo,这里代码和官网一致,https://mp.weixin.qq.com/debug/wxadoc/dev/api/open.html#wxgetuserinfoobject,认真仔细阅读
getUserInfo: function (cb) {
var that = this
if (this.globalData.userInfo) {
typeof cb == "function" && cb(this.globalData.userInfo)
} else {
//调用登录接口
wx.login({
success: function (res) {
var code = res.code
if (res.code) {
//获取用户基本信息
wx.getUserInfo({
success: function (res) {
that.globalData.userInfo = res.userInfo
that.globalData.rawData = res.rawData
that.globalData.signature = res.signature
that.globalData.encryptedData = res.encryptedData
that.globalData.iv = res.iv
typeof cb == "function" && cb(that.globalData.userInfo)
}
})
}
}
})
}
},
globalData: {
userInfo: null,
rawData: null,
signature: null,
encryptedData: null,
iv: null,
}
代码文档地址:提供了小程序端和C#后台代码,比较完整http://download.csdn.net/download/springpp1990/10244829