注:获取当前用户信息只需要用GetUserInfo这个方法就行。这里就不需要提了
前端代码:
CallBack:回调函数
function GetOpenID(CallBack){
var appInstance = getApp()
var url = appInstance.globalData.apiurl
url +="Weixin/GetOpenID"
wx.login({
success: function (loginCode) {
wx.request({
url: url,
data: {
loginCode: loginCode.code
},
header: {
'content-type': 'application/json'
},
success: function (res) {
var obj=res.data.data
obj=JSON.parse(obj)
CallBack(obj.openid)
},
complete: function (res) {
//console.log("结果:" + JSON.stringify(res))
}
})
}
})
}
后台代码:
(目前我是使用的MVC框架)
/// <summary>
/// 获取openID
/// </summary>
/// <param name="loginCode">小程序登录返回的code</param>
/// <param name="model">小程序Model</param>
/// <returns></returns>
public static string GetOpenID(string loginCode, WxConfigModel model)
{
string url = "https://api.weixin.qq.com/sns/jscode2session?appid={0}&secret={1}&grant_type=authorization_code&js_code={2}";
url = string.Format(url, model.config.AppId, model.config.AppSecret, loginCode);
return Request.GetWebRequest(url);
}
相应的WxConfigModel和GetWebRequest方法在之前的博客写道,可以直接调用;
这里目前返回的是一个字符串。所以需要在前端再进行一次JSON.parse(obj).