HarmonyOS鸿蒙Next中集成华为应用内支付订阅功能,沙盒和正式环境下测试取消订阅关键事件通知的对比

HarmonyOS鸿蒙Next中集成华为应用内支付订阅功能,沙盒和正式环境下测试取消订阅关键事件通知的对比

背景描述

我们集成了华为应用内支付订阅商品服务,分别在沙盒环境和正式环境下,测试取消订阅,并记录下取消订阅和取消后到期时收到的notificationType(通知事件类型),测试如下:

现象分析与疑问

如上图所示,红色数字表示服务端收到的关键事件通知的notificationType(通知事件类型),

正式环境下:

  1. 7月25号10:03分首次购买周卡,返回通知类型0(订阅的第一次购买行为);
  2. 7月25号10:18分取消订阅,返回通知5(订阅服务续期被停止,已经收费的服务仍然有效)
  3. 8月8号10:47分再次购买,返回通知3(用户主动恢复一个已经过期的订阅,或者用户在一个已经过期的商品订阅上切换到其他选项,成功后服务马上生效)和6(用户主动恢复了一个订阅型商品,续期状态恢复正常)

沙盒环境测试结果与正式环境类似,这里省略描述。

针对以上测试,有以下几条疑问:

  1. 正式环境,7月25号10:18分取消订阅,此时商品未到期,8月1号到期,到期时并未收到进入帐号保留期的通知9。
  2. 沙盒测试取消订阅也没有帐号保留期的通知9。
  3. 取消订阅后再次购买时为什么同时收到两个回调3和6。

问题解决

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

  1. 主动取消订阅后进入保留期不会发送ON_HOLD(9)通知,在正常续期扣费失败后进入保留期才会发送ON_HOLD(9)通知。沙盒测试不支持帐号保留期的测试。
  2. 通知事件类型3表示恢复一个已经过期的订阅,6仅仅表示续期状态恢复正常。因为此时场景是商品已过期后恢复订阅的,所以会同时返回3和6。如果取消订阅后在商品未到期时恢复订阅,就会只返会6的关键事件通知了。

简单来说,只要是恢复场景的都会返回6,包括在有效期内恢复和已过期的恢复操作,3表示恢复的是过期的订阅,且产生扣费。

PS:

订阅关键事件通知文档参考链接: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


更多关于HarmonyOS鸿蒙Next中集成华为应用内支付订阅功能,沙盒和正式环境下测试取消订阅关键事件通知的对比的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

你好,我有一个疑问:沙盒测试中是7月27首次购买周卡,然后同一天又取消了,接着7月28日再次购买周卡,这才过了一天啊,周卡还没过期啊,为什么沙盒测试会返回通知3?通知3不是用户主动恢复一个已经过期的订阅(或用户在一个已经过期的商品订阅上切换到其他选项)才会返回的吗?

更多关于HarmonyOS鸿蒙Next中集成华为应用内支付订阅功能,沙盒和正式环境下测试取消订阅关键事件通知的对比的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


学习了

在HarmonyOS鸿蒙Next中集成华为应用内支付订阅功能时,沙盒环境正式环境下取消订阅的关键事件通知存在以下差异:

  1. 沙盒环境

    • 用于开发和测试,模拟用户取消订阅的行为。
    • 取消订阅后,系统会立即触发onCancel事件,便于快速验证逻辑。
    • 支持模拟多种取消场景(如用户手动取消、自动续费失败等)。
  2. 正式环境

    • 实际用户取消订阅后,系统会在订阅周期结束时触发onCancel事件。
    • 需要处理真实用户的取消行为,可能存在延迟(如用户通过支付平台取消)。
    • 需确保应用正确处理取消事件,避免影响用户体验。

总结:沙盒环境便于快速测试,正式环境需处理真实用户行为,两者在事件触发时机和场景复杂性上有显著区别。

回到顶部