微信网页授权报code been used, hints: [ req_id: XYv1Ha07042046 ]

先贴上代码:

 public function index() { $code = input(get.code); $tool = new Wxtool(); if (empty($code)) { $url = http://www.layton.top/wx/Receive; $tool -> getCode($url, 2); }else { $tool -> getWebAccessToken($code); } }

方法:

 public function getCode($url,$type=1) { $redirect_uri = urlencode($url); $scope = null; if($type == 1) { $scope = snsapi_base; }else{ $scope = snsapi_userinfo; } $code = https://open.weixin.qq.com/connect/oauth2/authorize?appid= . APPID .&redirect_uri= . $redirect_uri . &response_type=code&scope= . $scope . &state=STATE#wechat_redirect; header("location:" . $code); } public function getWebAccessToken($code) { $url = https://api.weixin.qq.com/sns/oauth2/access_token?appid= . APPID . &secret= . APPSECRET . &code= . $code . &grant_type=authorization_code; $data = $this -> http_curl($url, get); dump($data); }

我们第一次进入的时候是可以正常获取返回数据的,但是刷新一下就不行了,这个是为什么呢?

没错,他第二次用的code参数是第一次获取的,微信的code只能用一次:

技术分享图片

所以他第二次用的时候就不行了。我们正常的使用流程应该这样:

技术分享图片

 

相关文章