华为Order服务验证购买Token返回错误信息“Token is expired or invalid” HarmonyOS鸿蒙Next
华为Order服务验证购买Token返回错误信息“Token is expired or invalid” HarmonyOS鸿蒙Next
关键词
华为应用内支付校验,purchaseToken
校验
问题背景
支付成功后做校验,参考华为应用内支付服务端文档,调用Order
服务验证购买Token
接口{rootUrl}/applications/purchases/tokens/verify
,返回错误码{"responseCode":"6","responseMessage":"Token is expired or invalid"}
。
问题分析
我参考了网上的帖子:
- https://developer.huawei.com/consumer/cn/forum/topic/0201411111503110370?fid=18,我获取
AT
时传的appid
、app secret
没问题。
最后我找到华为技术支持(可以提交工单:https://developer.huawei.com/consumer/cn/support/feedback),对方让我把{rootUrl}/applications/purchases/tokens/verify
接口的Authorization
参数发出来检查一下,我的Authorization
参数是"Basic QVBQQVQ6UkVGRlFrRk1URWhoUnl0d0sxVldVRkZ5WVd0**************************VlpCVlRkbmVXOW5SVW8zTkdaVlJVaHphek5QSzFsTlprUkpOa3hVYlU1S1RXdFVaSGRNZDA1U1RHTnZka3BPVmt0M1BUMD0="
。
对方检查后告诉我,我的参数编码了两次。
Authorization
正确传参为:对获取的AT
拼接“APPAT:
”前缀,然后进行Base64
编码,最后对编码后的字串拼接“Basic
”前缀。
例:
i. 获取的AT
为字符串A
:
“DAEBALLHaG+p+UVPQrakLw****************O+YMfDI6LTmNJMkTdwLwNRLcovJNVKw==”
ii. 字符串A
拼接“APPAT:
”前缀后的字符串B
:
“APPAT: DAEBALLHaG+p+UVPQrakLw****************O+YMfDI6LTmNJMkTdwLwNRLcovJNVKw==”
iii. 对字符串B
进行Base64
编码后的字符串C
:
“QVBQQVQ6REFFQkFMTEhhRyt****************0RvQ0JTSkduR3VYUDVmMmdkSVZBVTdneW9nRUo3NGZVRUhzazNPK1lNZkRJNkxUbU5KTWtUZHdMd05STGNvdkpOVkt3PT0=”
iv. 对字符串C
拼接“Basic
”前缀后的字符串D
:
“Basic QVBQQVQ6REFFQkFMTEhhRyt****************0RvQ0JTSkduR3VYUDVmMmdkSVZBVTdneW9nRUo3NGZVRUhzazNPK1lNZkRJNkxUbU5KTWtUZHdMd05STGNvdkpOVkt3PT0=”
v. 将字符串D
作为Authorization
的参数进行请求。
而我对获取的AT
字串先进行了一次编码,再拼接“APPAT:
”前缀,然后又进行了一次Base64
编码。
按照对方的指导修改以后,接口请求正常,问题解决。
更多关于华为Order服务验证购买Token返回错误信息“Token is expired or invalid” HarmonyOS鸿蒙Next的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于华为Order服务验证购买Token返回错误信息“Token is expired or invalid” HarmonyOS鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
当华为Order服务验证购买Token时返回“Token is expired or invalid”错误信息,通常表示提供的Token已过期或无效。建议您检查以下几点:
- Token有效期:确保Token在有效期内使用,过期后需重新获取。
- Token生成方式:确认Token生成过程正确无误,符合华为Order服务的规范。
- 网络请求:检查网络请求是否完整,包括Token的传递和格式。
- 服务端配置:确保服务端配置正确,尤其是与华为Order服务对接的部分。
如问题持续,建议联系华为技术支持获取进一步帮助。