tp5获取微信小程序openid

1.先说下我遇到的问题吧,

1),总是给我报500的返回错误,以为是网站域名没备案的问题,结果发现并不是,只是开发工具中的账号信息对应不一致,我是专门找了一个域名备案加ssl证书配备好的服务器测试一直不成功。

2)大家只需要在本地配置好自己的本地环境,并把微信web开发工具中的 设置-》项目设置-》不验证https开启就可以了

3)你还可能会遇到这个问题:{"errcode":40163,"errmsg":"code been used, hints: [ req_id: pQyX602412029 ]"},这是因为code只能使用一次,在微信小程序文档中有介绍,大家完全不用去追究他,按照我下边的逻辑来即可。

微信小程序端代码

// 登录
wx.login({
success: function (res) {
if (res.code) {
//发起网络请求
wx.request({
//这里的that.globalData.url指的是服务器端的路径,可以直接改成自己的服务器路径Wx_GetOpenidByCode指的是获取openid的方法名
url: that.globalData.url+ 'Wx_GetOpenidByCode' ,
data: {
code: res.code
},
success: function (data){
//data即为返回的openid
console.log(data)
}
})
} else {
console.log( '登录失败!' + res.errMsg)
}
}
});


tp5端的代码,非常简单,如下所示,需要注意的是

file_get_contents这个方法需要在php.ini文件中开启,相信做过开发的都知道,只需要去掉
php.ini文件中的;extension=php_openssl.dll前边的;即可.

//换取OpenId
public function Wx_GetOpenidByCode(){
    $code = $_REQUEST['code'];//获取code
    $appid ="";
    $secret = "";
    $url = "https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret=$secret&js_code=$code&grant_type=authorization_code";
    //通过code换取网页授权access_token
    $weixin =  file_get_contents($url);
    $jsondecode = json_decode($weixin); //对JSON格式的字符串进行编码
    $array = get_object_vars($jsondecode);//转换成数组
    $openid = $array['openid'];//输出openid
    return $openid;
}

你可能感兴趣的:(微信小程序)