美文网首页
小程序开发中code换取session_key和openid的错

小程序开发中code换取session_key和openid的错

作者: 云端念经的唐僧 | 来源:发表于2017-07-29 16:41 被阅读0次

    这些日子在研究和开发微信产品,大部分官网提供的文档我个人感觉还是比较详实的,但是对错误的解决办法提供的手段并不多,作为第一次接受小程序开发的我,在开始阶段就遇到了一个比较初级的问题:调用小程序登陆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的错

          本文链接:https://www.haomeiwen.com/subject/cjrclxtx.html