之前通过微信接口wx.request(""https://api.weixin.qq.com/sns/jscode2session?appid=".$appid."&secret=".$secret."&js_code=".$code."&grant_type=authorization_code";)
这种方式去取用户的openid,在开发工具和手机调试模式下都是正常的,,但在微信不开调试的情况下,始终没得返回,,找了半天,最后查到是因为微信端不能把api.weixin.qq.com这个网址设为信任站点,也就是在前端是不能调用的,调用的话,也没返回,所以必须把请求openid的方法写到后端服务器,我在网上找了个例子,做了个wxLogin.php代码,放自己的WEB服务器上。
代码如下:
<?php
//获取openid
//声明CODE,获取小程序传过来的CODE
$code = $_GET['code'];
//配置appid
$appid = 'xxxxxx';
//配置appscret
$secret = 'xxxxxxxxx';
$api = "https://api.weixin.qq.com/sns/jscode2session?appid=".$appid."&secret=".$secret."&js_code=".$code."&grant_type=authorization_code";
//获取GET请求
function httpGet($url){
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
curl_setopt($curl, CURLOPT_URL, $url);
$res = curl_exec($curl);
curl_close($curl);
return $res;
}
//发送
$str = httpGet($api);
print_r($str);
?>
参考文档
https://blog.csdn.net/qq_39194398/article/details/81482090
http://www.cnblogs.com/GothicLolita/articles/9664796.html