HarmonyOS 鸿蒙Next中集成应用内支付订阅功能,暂停期结束后进入自动续订的关键事件通知

HarmonyOS 鸿蒙Next中集成应用内支付订阅功能,暂停期结束后进入自动续订的关键事件通知 背景描述

我们游戏集成了华为应用内支付订阅服务,分别在正式环境和沙盒环境下,测试设置暂停计划,暂停期到期后进入自动续订,并记录下每次收到订阅关键事件通知的notificationType(通知事件类型),测试结果如下:

关键事件通知类型参考文档: 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:06 首次购买周卡,返回订阅关键事件0。0表示首次购买。
  2. 7月25号10:20 取消订阅,返回订阅关键事件5。5表示订阅停止。
  3. 7月25号10:44 恢复订阅,返回订阅关键事件6,6表示恢复订阅。
  4. 7月25号10:50 设置暂停计划一周,返回订阅关键事件11,11表示设置了暂停续期计划 (包括暂停计划的创建、修改以及在暂停计划生效前的计划终止)。
  5. 8月2号09:06 进入暂停期,收到通知10。

这里我有个疑问①:原订阅是7月25号购买的周卡,到期时间是8月1号,为什么8月2号才进入暂停期?

  1. 8月8号09:06 再次收到通知10(顾客设置暂停续期计划后,到期后订阅进入Paused状态)。

这里我有个疑问②:为什么会再次收到通知10?

  1. 8月8号10:21 暂停期结束,自动续期,此时因为已经到期,所以收到通知2(一个已经过期的订阅自动续期成功)。
  2. 之后在支付宝里手动取消订阅续期协议,8月16号商品到期,进入帐号保留期,收到通知9。

这里我有个疑问③:8月8号10:21 自动续费,应该8月15到期进入保留期,为什么8月16才收到通知9?

沙盒环境下:

  1. 7月27号16:22 首次购买周卡,返回订阅关键事件0。0表示首次购买,与正式环境一致。
  2. 7月27号16:23 取消订阅,返回订阅关键事件5。与正式环境一致。
  3. 7月27号16:23 恢复订阅,返回订阅通知6和7,与正式环境多返回通知7。

问题我有个疑问④:为什么多了个通知7?

  1. 7月27号16:23 设置暂停15分钟,返回订阅通知11(表示创建、暂停计划生效前终止)。
  2. 7月27号16:33 进入暂停期,返回订阅通知10。
  3. 沙盒下暂停12分钟后发生自动续期,之后每间隔10分钟续期一次。

这里我有个疑问⑤:设置暂停15分钟,为什么实际只间隔了12分钟?

  1. 手动取消续期协议后,一直没有收到进入保留期的通知。

这里我有个疑问⑥:为什么没有进入保留期?

问题解决

咨询华为技术(可提单 https://developer.huawei.com/consumer/cn/support/feedback 联系),技术针对我的问题一一做了答复。

问题①③:进入暂停期、保留期都属于商品过期事件,过期事件和续费扣款不同,不是实时检查到并发送关键事件通知。目前华为会每日检查一次发现是否过期,所以会有一天左右的时间误差,建议以最终的查询结果为准。

问题②:实际不应该再次收到通知10,为已知问题,后续会优化。

疑问④:是沙盒设置如此,正式环境不受影响。

疑问⑤:设置暂停15分钟,实际是暂停12分钟收到回调通知,这是因为沙盒下测试有误差,后续会陆续优化。

疑问⑥:沙盒不支持帐号保留期的测试,因为沙盒是模拟测试,不产生实际支付,没有扣款失败的问题(支付宝里取消订阅续期协议也不影响沙盒续期功能)。


更多关于HarmonyOS 鸿蒙Next中集成应用内支付订阅功能,暂停期结束后进入自动续订的关键事件通知的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS 鸿蒙Next中集成应用内支付订阅功能,暂停期结束后进入自动续订的关键事件通知的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,应用内支付订阅功能的关键事件通知可通过PaymentManager实现。具体步骤如下:

  1. 监听订阅状态:使用PaymentManager.SubscriptionStatusListener监听订阅状态变化。
  2. 处理自动续订:当订阅暂停期结束并进入自动续订时,系统会触发onSubscriptionStatusChanged回调。
  3. 更新UI或业务逻辑:在回调中处理自动续订事件,更新UI或执行相关业务逻辑。

确保在onCreate中注册监听器,并在onDestroy中注销,以避免内存泄漏。

回到顶部