问题现象
集成华为HMS SDK应用内支付的相关能力时,参考华为提供的文档,对支付订单进行校验,结果总是报错如下:
{"responseCode":"6","responseMessage":"Token is expired or invalid"}
问题定位
联系华为官方技术客服(地址:https://developer.huawei.com/consumer/cn/support/feedback/#/)沟通定位了下,建议从以下几点排查,给项目组同事分享下~~~
- 如果服务器开发使用的是Java、PHP、C#、Python、Node.js、Golang、Ruby和Perl等几种语言,可以参考华为提供的示例代码自行排查下。
- 向华为服务器请求时需要使用AccessToken进行鉴权,需要使用客户端模式获取AccessToken,千万不要弄错!!!
- 获取AccessToken的请求参数时,需要使用华为后台的appid、app secret(我这边就是这个原因导致的,app secret拿错了),有图有真相~具体获取方式参考如下:
- 检查客户端inAppPurchaseData(包含appid信息)获取的待校验purchaseToken和服务器请求获取AccessToken使用的appid(上面第三条说到的)是否是同一个。
原文链接:https://developer.huawei.com/consumer/cn/forum/topic/0201411111503110370?fid=18
原作者:Mayism