请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,我调试获取token接口时,报错为:$wxResult为null.

老师,我调试这个接口时报错了,弄了很久找不到解决办法。

请您看看好吗?

myzerg.ccc/api/v1/token/user?XDEBUG_SESSION_START=19422。

code,appid,secrete,  都有,也勾选了不检验域名,

但是 $wxResult = json_decode($result, true); 这里返回为null 。


//img1.sycdn.imooc.com//szimg/5a477b6f0001066214980608.jpg

//img1.sycdn.imooc.com//szimg/5a477b410001d44625440796.jpg


后来我把,$this->wxLoginUrl打印出来。

放在地址栏:

第一次会返回正确:

{

session_key: "wZs3Lw3uEFKlYG3oKUPSAg==",

expires_in: 7200,

openid: "odRAB0SOqiMudKgsgdH6q2hFuwe0"

}


//img1.sycdn.imooc.com//szimg/5a4781aa000180ab50560712.jpg

后面再用此code就会返回错误:

{

errcode: 40163,

errmsg: "code been used, hints: [ req_id: Gx8Bfa0389th36 ]"

}

//img1.sycdn.imooc.com//szimg/5a4781dc0001436d50360616.jpg

这样看起来象curl_get方法有问题,但这是我copy老师的方法。

然后我把此方法中提到的,不做证书校验,改为true或false都试过后,报同样的问题。(无论false还是true)

function curl_get($url, &$httpCode=0){
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   //不做证书校验,部署在linux环境下请改为true
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
   curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
   $file_contents = curl_exec($ch);
   $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
   curl_close($ch);
   return $file_contents;
}

那是哪里的问题呢?

请教老师怎么解决呢?谢谢老师!

正在回答

3回答

code只能用一次啊。第二次当然返回已经被使用。

0 回复 有任何疑惑可以回复我~
  • 提问者 yyii #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-01-02 06:36:59
提问者 yyii 2019-10-22 14:16:10

找到原因了,我有多个php版本,当时用的是php 5.6。curl就报错。
现在切换到php7版本,就好了。

0 回复 有任何疑惑可以回复我~
提问者 yyii 2018-01-02 06:39:27

好的,谢谢老师!为什么程序第一次运行到curl_get时,也是返回null呢?这个我一直没弄出来。上面调试可以看出。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信