微信授权报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只能用一次:

code说明:code作为换取access_token的票据,每次用户授权携带的code将不一样,code只能使用一次,5分钟未被使用将自动过期.

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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值