HarmonyOS鸿蒙Next中集成应用内支付订阅功能,测试切换相同周期订阅收到的订阅关键事件通知

HarmonyOS鸿蒙Next中集成应用内支付订阅功能,测试切换相同周期订阅收到的订阅关键事件通知 背景描述

我们游戏集成了华为应用内支付订阅服务,分别在正式环境和沙盒环境下,测试切换订阅相同周期商品,并记录下每次收到订阅关键事件通知的(通知事件类型),测试结果如下:

cke_1642.png

cke_4515.png

关键事件通知类型参考文档:
https://developer.huawei.com/consumer/cn/doc/development/HMSCore-References/api-notifications-about-subscription-events-0000001050706084

沙盒测试参考文档:
https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/sandbox-testing-0000001050035039

疑问

正式环境下:

  1. 7月25号10:28首次购买周卡1,返回订阅关键事件0。0表示首次购买。
  2. 7月25号10:36切换到相同周期的订阅周卡2,返回订阅关键事件1和7。1表示原订阅停止,7表示切换立即生效的续期。

沙盒环境下:

  1. 10月18号10:32首次购买周卡1,返回订阅关键事件0。0表示首次购买,与正式环境一致。
  2. 10月18号10:34切换到相同周期的订阅周卡2,返回订阅关键事件7。与正式环境相比,缺少返回1。
  3. 10月18号10:36订阅周卡2发生自动续期,返回订阅关键事件7。
  4. 之后沙盒每间隔3分钟自动续期一次,一共主动续期5次。

沙盒测试下有两个疑问:

  1. 沙盒切换订阅时收到通知7,没有通知1。
  2. 沙盒自动续期间隔时间有2分钟也有3分钟的,而不是文档上“时光机”概念月卡对应的3分钟。不太准确。

cke_7255.png

问题解决

联系华为技术支持(可提单https://developer.huawei.com/consumer/cn/support/feedback联系)咨询,技术回复:

  1. 沙盒下切换订阅没有通知1的问题,是已知问题,已经安排在优化,后续会更改。
  2. 沙盒下由于发出通知是异步通知,会有误差,导致续期间隔时间不太准确。但是实际返回的通知中的purchaseTime、expirationDate字段时间是准确的,比如:

10:36分收到的通知中的purchaseTime和expirationDate时间戳分别为1666060632141和1666060812141,时间戳转换后为2022-10-18 10:37:12和2022-10-18 10:40:12,是准确的。

cke_9792.png

cke_13566.png

总结就是:

在收到IAP服务器的订阅关键事件通知时,根据通知内容中的购买Token,请求IAP服务器校验购买Token获取当前购买Token关联订阅的最新状态,并根据订阅最新状态决定您是否需要提供商品服务。

cke_4550.png


更多关于HarmonyOS鸿蒙Next中集成应用内支付订阅功能,测试切换相同周期订阅收到的订阅关键事件通知的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

我这里有个问题请教一下,请问博主有试过:测试当前周期切换订阅操作吗?

通知发送过程:0–>7–>4–>1–>7

  1. 首次购买月档位:通知0
  2. 月档位续费成功:通知7
  3. 月档位未过期前,切换订阅年档位 : 通知4
  4. 月档位过期前一天:通知1 (切换订阅)
  5. 年卡档位切换扣费成功 :通知7

更多关于HarmonyOS鸿蒙Next中集成应用内支付订阅功能,测试切换相同周期订阅收到的订阅关键事件通知的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中集成应用内支付订阅功能时,测试切换相同周期订阅时,系统会发送以下关键事件通知:

  1. 订阅更新通知:当用户切换相同周期的订阅时,系统会发送onSubscriptionUpdated事件,通知应用订阅信息已更新。

  2. 订阅状态变更通知:系统会发送onSubscriptionStatusChanged事件,通知应用订阅状态的变化,如从“活动”变为“已取消”或“续订”。

  3. 支付结果通知:系统会发送onPaymentResult事件,通知应用支付结果,包括成功或失败的状态。

确保在应用内正确处理这些通知,以更新用户订阅状态并提供相应的反馈。

回到顶部