小程序开发中code换取session_key和openid的错误解决方法

这些日子在研究和开发微信产品,大部分官网提供的文档我个人感觉还是比较详实的,但是对错误的解决办法提供的手段并不多,作为第一次接受小程序开发的我,在开始阶段就遇到了一个比较初级的问题:调用小程序登陆API时能返回code,但是用code换取session_key和OPENid时总是提示【40029】错误代码,微信官网给的答案是code失效,而我从网络上找到的资料说是code被二次调用了,我检查了代码,并没有二次调用?

上代码:【app.js】

wx.login({

success: function (res){

if(res.code){

console.log(res.code)//显示一下获取的code

if(res.code){

wx.request({

url: 'https://www.xxxxx.com/wx/request_code.php',//我的服务器文件

data:{

code:res.code

}

success: function (re) {

console.log(re.data)

},

fail:function(){

console.log('shiban')

}

})

}

}else{

console.log('获取用户登录态失败!' + res.errMsg)

}

}

我自己服务器上的文件【request_code.php】


$APPID='XXXXXXXX';

$AppSecret="xxxxxxxxxxxxxxxxxxxxx";

$code=$_REQUEST['code'];

$request_https="

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

"

//获取session_key和openid的接口地址

$ch=curl_init();

curl_setopt($ch,CURLOPT_URL,$request_https);

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);

curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

$output=curl_exec($ch);

curl_close($ch);

$jsoninfo=$output;

//提交到接口的代码

这样返回就是40029错误,后台无意中我将appid和secret的值直接写在下面的接口地址里,竟然神奇的起作用了,换回了session_key和openid:

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

这个小问题困扰了我两三天,终于解决了。现在贴出来希望对小程序开发过程中遇到同样问题的你有帮助

?>

你可能感兴趣的:(小程序开发中code换取session_key和openid的错误解决方法)