报错:无效的访问令牌
用户信息授权后出现的错误,在用户授权后获取的auth_code后,使用auth_code换取access_token。然后用access_token去调用相关接口获取用户信息导致的报错。 获取用户信息的产品有多种,不同的产品对应不同的接口,所以此类报错原因有以下:
1、access_token的值错误
2、access_token调用的接口错误
3、access_token失效过期
检查方案有下:
1、不同的产品有不同的scope来获取auth_code,用auth_code调用alipay.system.oauth.token来换取access_token,不同产品的access_token也不一样,不同产品不能通用,所以需要根据对应的产品文档来调用相关接口,也能保证access_token的正确性。各产品对接文档可以参考帖子:如何传值scope接口权限值-参数解读系列。
2、如果调用SDK来请求的代码,传入access_token的方式也需要注意下(用户信息共享接口alipay.user.info.share接口示例):
Java:
AlipayUserInfoShareResponse response = alipayClient.execute(request,accessToken);
php:
$result = $aop->execute ( $request , $accessToken );
.net:
AlipayUserInfoShareResponse response=client.execute(request,accessToken);
3、access_token取决于授权时指定的scope的有效期,如果授权时指定多个scope,最终的access_token的有效期取决于有效期最短的scope。access_token截止时间=(授权时间点)+(授权后调用alipay.system.oauth.token返回的expires_in) 具体scope说明也可以参考这个帖子:如何传值scope接口权限值-参数解读系列。
报错:无效的应用授权令牌
第三方应用授权后,商户使用app_auth_token去代其他商家发起接口请求时报的错误,报错原因有以下:
1、app_auth_token令牌值传错
2、app_auth_token令牌已经过期
检查方案如下:
1、请根据文档步骤来获取正确的app_auth_token,第三方应用授权:[url]https://docs.open.alipay.com/common/105193[/url]
2、app_auth_token有效期为365天(现在文档更新,app_auth_token已改为永久有效了),如果使用refresh_token去刷新的话app_auth_token从刷新开始10分钟内可继续使用,后面再使用之前的app_auth_token便会失效了。
3、如果使用SDK来请求接口,传入app_auth_token的方式如下(当面付扫码支付接口示例):
Java:
AlipayTradePrecreateResponse response = alipayClient.execute(request,null,app_auth_token);
Php:
$result = $aop->execute ($request,null,app_auth_token);
.net:
AlipayTradePrecreateResponse response=client.execute(request,null,app_auth_token);