关山初度尘未洗,策马扬鞭再奋蹄!这篇文章主要讲述接入华为应用内支付,验证购买Token接口,返回“rights invalid”相关的知识,希望能为你提供帮助。
有海外开发者向我们提问:我在应用中集成了华为应用内支付SDK(测试购买订阅型商品),按照文档说明,在服务器去请求验证购买Token接口的时候返回了{"
responseCode"
:"
6"
,"
responseMessage"
:"
rights invalid"
}。此错误在文档FAQ中有提到:建议优先检查获取AccessToken时的appid和实际请求参数purchaseToken关联的appid是否同一个。我只有一组项目,一组客户端ID及客户端秘钥,因此按理说appid应该是相同的。我不知道是哪里有问题? 我该怎么配置。
文章图片
问题详情见链接:https://stackoverflow.com/questions/64613379/huawei-in-app-purchase-token-verification-unexpected-error-rights-invalid
解决方案
- 根据开发者提供的代码显示他的接口用错了,他使用的是Order服务购买Token校验,应该使用Subscription服务验证购买Token。
Subscription服务验证购买Token只针对订阅型商品。此接口用于校验购买的商品,判断商品是否已经成功购买,是否在有效期内。
Order服务验证购买Token请求示例如下:
POST /applications/purchases/tokens/verify
Content-Type: application/json;
charset=UTF-8
Authorization: Basic QVQ6Q1YzQ1NPbVlBaGwrZUtRWExtMTBVV2pyWXZHTVF4MmYvcVMya1B0ZElLY3UwaFJrdFNTMmxwdk1FQkIyYldXWGt0REVaR3I4UjFUTTRLMVlmNXdwWU80RG04THdXQWxjaFhEYjBMUjBNTUJtWnFYcGFtazc3THN3UnFJbkhHK28xekdqRzNSMg==
Accept: application/json
Content-Length: 143
{
"purchaseToken": "00000173741056a37eef310dff9c6a86fec57efafe318ae478e52d9c4261994d64c8f6fc8ea1abbdx5347.5.3089",
"productId": "prd1"
}
Subscription服务验证购买Token请求示例如下:
POST /sub/applications/v2/purchases/get
Content-Type: application/json;
charset=UTF-8
Authorization: Basic QVQ6Q1YzQ1NPbVlBaGwrZUtRWExtMTBVV2pyWXZHTVF4MmYvcVMya1B0ZElLY3UwaFJrdFNTMmxwdk1FQkIyYldXWGt0REVaR3I4UjFUTTRLMVlmNXdwWU80RG04THdXQWxjaFhEYjBMUjBNTUJtWnFYcGFtazc3THN3UnFJbkhHK28xekdqRzNSMg==
Accept: application/json
Content-Length: 171
{
"purchaseToken": "00000173741056a37eef310dff9c6a86fec57efafe318ae478e52d9c4261994d64c8f6fc8ea1abbdx5347.5.3089",
"subscriptionId": "1581789719266.D40972AC.3089"
}
- 订阅商品的验证如下:
接口Url: {rootUrl}/sub/applications/v2/purchases/get
rootURL:
中国站点: https://subscr-drcn.iap.hicloud.com
德国站点: https://subscr-dre.iap.hicloud.com
新加坡站点: https://subscr-dra.iap.hicloud.com
俄罗斯站点: https://subscr-drru.iap.hicloud.com
AppTouch 德国站点: https://subscr-at-dre.iap.dbankcloud.com
AppTouch新加坡站点: https://subscr-at-dra.iap.dbankcloud.com
上述介绍了App集成应用内支付SDK后验证购买Token接口时返回“rights invalid”的解决方案,那么有人可能要问了,华为应用内支付究竟是什么呢?有什么功能?
关于HMS IAP Kit华为应用内支付服务(In-App Purchases,IAP)为APP提供便捷的应用内支付体验和简便的接入流程。App通过集成IAP SDK,再调用IAP SDK接口启动IAP收银台,即可实现应用内支付。聚合多种支付通道,支持全球支付,为应用提供便捷的应用内支付体验,通过应用内支付服务,用户可以在应用内购买各种类型的商品或服务,包括普通虚拟商品和订阅商品服务,助力开发者的商业变现。
文章图片
快速体验华为应用内支付服务教程和开发实例请参见快速入门指南。
Stack Overflow 与HMS作为全球最大的编程问答社区,Stack Overflow上每天都会有来自全球各地不同国家的开发者在上面提问各种编程问题。我们也在Stack Overflow上开了专栏:Stack Overflow 欢迎大家在上面提问在集成HMS Core过程中遇到的各种编程问题。
欲了解更多详情,请参阅:
华为应用内支付服务官网
应用内支付开发指南
示例代码
华为移动服务开源仓库地址:GitHub、Gitee
【接入华为应用内支付,验证购买Token接口,返回“rights invalid”】关注我们,第一时间了解 HMS Core 最新技术资讯~
推荐阅读
- 完完整整地看完这个故事,你敢说还不懂Docker()
- 解决 API 开发中遇到的 CORS 问题
- 在地图上创建热力图的方法
- 如何在没有双花括号冲突的情况下使用Angular.js和Twig
- 使用纯JavaScript编码和解码HTML实体
- 如何在Ubuntu Server中为Gitlab私有存储库创建和配置部署SSH密钥
- JavaScript Battery API简介
- 如何在浏览器(无服务器)中创建文件并使用JavaScript生成下载
- 如何使用JavaScript在单击或鼠标事件中从画布获取像素颜色