微信網頁授權報code been used, hints: [ req_id: XYv1Ha07042046 ]
阿新 • • 發佈:2018-08-28
web 獲取 UNC color 微信網頁授權 oauth image 授權 use
先貼上代碼:
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只能用一次:
所以他第二次用的時候就不行了。我們正常的使用流程應該這樣:
微信網頁授權報code been used, hints: [ req_id: XYv1Ha07042046 ]