有海外开发者向我们提问:我在应用中集成了华为应用内支付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

解决方案

  1. 根据开发者提供的代码显示他的接口用错了,他使用的是Order服务购买Token校验,应该使用Subscription服务验证购买Token。

Order服务购买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"
}
  1. 订阅商品的验证如下:

参数:subscriptionId;purchaseToken

接口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

关注我们,第一时间了解 HMS Core 最新技术资讯~

接入华为应用内支付,验证购买Token接口,返回“rights invalid”相关推荐

  1. 【FAQ】接入华为应用内支付服务常见问题解答

    HMS Core应用内支付服务(In-App Purchases,IAP)为应用提供便捷的应用内支付体验和简便的接入流程.开发者的应用集成IAP SDK后,调用IAP SDK接口,启动IAP收银台,即 ...

  2. iap php,PHP语言之华为应用内支付IAP验签

    背景描述 项目对接华为HMS SDK的应用内支付IAP SDK3.x以后,支付成功后,可从PurchaseResultInfo对象中获取到购买数据InAppPurchaseData及其签名数据,需要使 ...

  3. PHP语言之华为应用内支付IAP验签

    背景描述 项目对接华为HMS SDK的应用内支付IAP SDK3.x以后,支付成功后,可从PurchaseResultInfo对象中获取到购买数据InAppPurchaseData及其签名数据,需要使 ...

  4. 华为应用内支付无法拉起

    对接华为HMS Core SDK 应用内支付(In-App Purchases,IAP)(4.0.4.300及更高版本)后,有时候会遇到华为IAP支付无法拉起的情况. 问题现象 发起支付后界面一闪而过 ...

  5. 华为应用内支付报错60002:iap not activated,无法支付,拉不起支付界面

    问题描述: 测试应用内支付,无法拉起支付界面,看日志报错如下: 我们在文档错误码中查到该错表示支付服务开关没有打开,检查后还是不能支付. 问题分析: 1.  确认应用的支付服务开关是否已经打开,支付服 ...

  6. 华为应用内支付验签失败,报错Signature length not correct

    问题背景: 支付验签失败,具体报错如下: 问题分析: 支付公钥使用错误. 问题总结: 华为从IAP sdk3.x版本开始,支付公钥要参考如下章节获取,详细请参考文档: 原文链接:https://dev ...

  7. 华为内支付流程以及服务端php校验

    一.简介 华为应用内支付服务(In-App Purchases,IAP)为App提供便捷的应用内支付体验和简便的接入流程.App通过集成华为应用内支付SDK,再调用SDK接口启动IAP收银台,即可实现 ...

  8. 接入HMS Core应用内支付服务过程中一些常见问题总结

    华为HMS Core应用内支付服务(In-App Purchases,IAP)为应用提供便捷的应用内支付体验和简便的接入流程.该服务支持客户端和服务端两种开发形式,具体可以参考官方文档. 往期文章:常 ...

  9. android 接入华为支付,hms-iap-clientdemo-android-studio

    华为应用内支付服务客户端示例代码 本章节主要介绍接入华为应用内支付的客户端开发步骤,帮助您快速了解华为支付提供的客户端接口及其使用方法. 点击此处了解更多. 目录 简介 华为应用内支付服务(HUAWE ...

最新文章

  1. Python语言的全部数据类型分享!
  2. 基于mcp940反编译Minecraft源代码
  3. 某校决定由全校学生(C语言)
  4. ndk学习6: 使用gdb调试ndk程序一
  5. mariadb 创建用户及授权
  6. zabbix数据库分表的实现
  7. java. tcp. 权限,java - tcpdump的不能够写PCAP文件。没有权限 - SO中文参考 - www.soinside.com...
  8. java调整图片透明度
  9. c语言gcno文件位置,c – 找不到CMake和lcov:gcno文件
  10. HttpUtil工具类
  11. 前端工程化:vue代码检查工具vetur
  12. 京东商城SPU、SKU是如何设计的
  13. 常见的知识图谱(Wikidata、YAGO、ConceptNet、DBpedia)
  14. ubuntu文件格式转换
  15. dart后端之jaguar基础配置
  16. 7-23 币值转换 (20 分)
  17. 关于一个任意文件上传漏洞场景的讨论
  18. React Native加载动画,lottie-web 将json解析成动画
  19. 学生成绩管理系统数据库设计--MySQLSQL Server
  20. grpc-gateway 返回值中默认值为什么不显示?

热门文章

  1. 使用计算机打印汉字文档是什么过程,电脑打印文字字体出现乱码的解决方法
  2. jquery设置video的宽度_jQ效果:jQuery和css自定义video播放控件
  3. gmtime php 时间戳,gmtime_s_日期与时间 | Date and time_C_参考手册_非常教程
  4. mac初心者小技巧汇总
  5. APKTool-apk反编译工具(绿色版)下载及使用说明
  6. php 读锁,php文件读写锁
  7. 电商课题:对付秒杀器等恶意访问行为的简单梳理
  8. 2021年化工自动化控制仪表试题及解析及化工自动化控制仪表操作证考试
  9. 小白学理财宏观经济分析篇
  10. 【工具教程】Dreamweaver教程