今天遇到了一个问题(前端遇到的) 小程序发布到测试版的时候 Openid读不到了 但是 真机调试和微信小程序开发的时候可以
https://api.weixin.qq.com/sns/jscode2 前端获取Post的接口是这个 一看就是腾讯爸爸的接口
第一时间考虑到可能是安全域名没添加 https://api.weixin.qq 去微信公众平台发现 不让添加这个 让自己写 于是自己写了一个
后端接口:(后端语言PHP 框架Laravel)
代码如下:
public function getOpneidDetails(Request $request){
//声明CODE,获取小程序传过来的CODE
$code = $request->get('code');
//配置appid
$appid = "你的appid"
//配置appscret
$secret = "你的appscret";
//api接口
$api = "https://api.weixin.qq.com/sns/jscode2session?appid={$appid}&secret={$secret}&js_code={$code}&grant_type=authorization_code";
//获取GET请求
//发送
$str =$this->httpGet($api);
return $str;
}
public 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, 2);
curl_setopt($curl, CURLOPT_URL, $url);
$res = curl_exec($curl);
curl_close($curl);
return $res;
}
PHP原生写法:
<?php
//声明CODE,获取小程序传过来的CODE
$code = $_GET["code"];
//配置appid
$appid = "修改成你小程序的APPID";
//配置appscret
$secret = "修改成你小程序的APPSECRET";
//api接口
$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);
echo $str;
?>
如果PHP版本过低 会报:

这个错误
此时 把
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
改成
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
就可以了

2727

被折叠的 条评论
为什么被折叠?



