HarmonyOS鸿蒙Next中华为Subscription服务验证购买Token接口返回错误信息Subscription relation does not exist
HarmonyOS鸿蒙Next中华为Subscription服务验证购买Token接口返回错误信息Subscription relation does not exist
关键词
华为应用内支付,华为订阅购买 token 校验
问题背景
购买订阅型商品,从客户端回调获取 purchaseToken 和 subscriptionId,然后参考华为 应用内支付服务端文档,调用 Subscription 服务验证购买 Token 接口 {rootUrl}/sub/applications/v2/purchases/get,返回错误码 6,responseMessage:“Subscription relation does not exist”。
解决方案
在开发者联盟上查到错误码 6 对应的描述和解决办法,如下
我找到华为技术支持(可以提交工单:https://developer.huawei.com/consumer/cn/support/feedback),对方让我发一下支付回调原始数据以及接口请求参数。
我用的是客户端支付回调,createPurchaseIntent 接口回调数据如下:
Subscription 服务验证购买 Token 接口请求数据:
从客户端回调里面可以看到:"oriSubscriptionId"和"subscriptionId"不一样,华为帐号在正常自动续费的情况下,订阅 ID 是不变的,现在原订阅 ID 和订阅 ID 不一致,说明 当前订阅是从其他商品切换来的,即切换订阅。
“purchaseState” 是 订单交易状态。-1 表示订单还未生效。切换订阅场景中,如果原订阅的续费周期和即将更换的订阅续费周期不同,需要等到原订阅到期后,新订阅才会生效。
我们内部确认了下,确实是对月卡、周卡进行的切换订阅。按照华为技术支持所说的,由于新订阅还未生效,所以接口返回 Subscription relation does not exist。即该报错是正常的。
参考/PS
订阅场景比较复杂,单依靠客户端回调,有些场景无法覆盖到,务必要接入订单/订阅关键事件通知能力,服务器端的事件通知能力场景比较全,并且到货更快,减少掉单几率。
接收订单/订阅关键事件通知:
https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides/notifications-about-subscription-events-0000001050035037
错误码参考:
https://developer.huawei.com/consumer/cn/doc/HMSCore-References/server-error-code-0000001050166248
更多关于HarmonyOS鸿蒙Next中华为Subscription服务验证购买Token接口返回错误信息Subscription relation does not exist的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于HarmonyOS鸿蒙Next中华为Subscription服务验证购买Token接口返回错误信息Subscription relation does not exist的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next系统中,使用华为Subscription服务时,如果验证购买Token接口返回错误信息“Subscription relation does not exist”,通常意味着所验证的购买Token与任何现有的订阅关系不匹配或不存在。可能的原因包括:
- 提供的Token不正确或已过期;
- 用户尚未完成订阅购买或购买未被系统正确记录;
- 应用与华为服务的集成存在问题,如配置错误。
建议检查Token的有效性、确保订阅流程完整执行,并验证集成配置是否正确。