HarmonyOS鸿蒙Next中目前接入华为支付,应用内支付,就是买了订阅之后,服务端关键事件通知,过了5分钟回调了一次BILLING_RETRY事件,为什么不回调DID_RENEW这个啊

HarmonyOS鸿蒙Next中目前接入华为支付,应用内支付,就是买了订阅之后,服务端关键事件通知,过了5分钟回调了一次BILLING_RETRY事件,为什么不回调DID_RENEW这个啊 目前接入华为支付,应用内支付,就是买了订阅之后,服务端关键事件通知,过了5分钟回调了一次BILLING_RETRY事件,为什么不回调DID_RENEW这个啊 ,使用的沙盒环境

删除账号的购买记录后第一次回调是DID_RENEW 第二次就是BILLING_RETRY

使用新账号也是第一次第一次回调是DID_RENEW 第二次就是BILLING_RETRY

cke_4242.png


更多关于HarmonyOS鸿蒙Next中目前接入华为支付,应用内支付,就是买了订阅之后,服务端关键事件通知,过了5分钟回调了一次BILLING_RETRY事件,为什么不回调DID_RENEW这个啊的实战教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

开发者你好,

没有确认发货,整个流程没有走完,续期时会导致续期失败,此时一个到期的自动续期订阅商品进入账号保留期,回调就是BILLING_RETRY,而DID_RENEW是续期成功才会收到的回调。參考服务端关键事件通知

更多关于HarmonyOS鸿蒙Next中目前接入华为支付,应用内支付,就是买了订阅之后,服务端关键事件通知,过了5分钟回调了一次BILLING_RETRY事件,为什么不回调DID_RENEW这个啊的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


开发者你好,

沙盒环境下有时光机概念,10s/天,5分钟差不多对应30天,请排查是不是您的商品到期未续期导致进入了保留期从而发送了BILLING_RETRY事件。如还有问题,请及时反馈。

沙盒情况下不是会自动续期嘛

开发者你好,

请问是否有确认发货的订阅。

是因为没有确认发货 会回调BILLING_RETRY 而不是DID_RENEW 嘛

湖北大哥,你好,你别急,你先回调yoxbdi f 上去,在钱包对话框,就可以,然后,把手机调一下应用设置,调一下,就是请小艺助手,返回来操作一下华为新钱包,就可以了,

在HarmonyOS鸿蒙Next中,华为支付订阅续费后,服务端通知回调BILLING_RETRY而非DID_RENEW,通常是由于支付系统在处理续费交易时遇到临时性状态。BILLING_RETRY表示支付流程需要重试或正在处理中,可能因网络延迟、交易验证或系统队列导致。DID_RENEW回调通常在续费成功且完全完成后触发。建议检查支付状态接口确认最终交易结果。

在HarmonyOS Next的沙盒环境中,订阅支付的服务端关键事件通知逻辑是特定的。DID_RENEW 事件通常仅在订阅周期成功续订时触发。您遇到的模式——首次回调为 DID_RENEW,后续变为 BILLING_RETRY——是沙盒环境的预期行为。

主要原因如下:

  1. 沙盒环境模拟:沙盒环境旨在模拟真实支付流程,但会对某些行为进行加速或简化。首次购买(或删除记录后首次购买)会模拟一个完整的“初始购买-首次续期”周期,因此回调 DID_RENEW
  2. 续订失败模拟:在沙盒中,系统可能会在后续周期中模拟“续订失败”场景(如账户余额不足、支付方式失效等)。BILLING_RETRY 事件正是通知您:系统尝试为订阅续费但失败,正在重试。这并非错误,而是沙盒用于测试您服务端处理重试逻辑的正常机制。
  3. 事件顺序DID_RENEW 仅在扣款成功、订阅周期实际延长时发送。如果沙盒模拟的续订尝试失败,则不会发送 DID_RENEW,转而发送 BILLING_RETRY,直到模拟成功或订阅过期。

结论:您观察到的现象符合沙盒设计。BILLING_RETRY 的出现意味着沙盒正在测试续订失败的重试流程,而非系统故障。请确保您的服务端能正确处理 BILLING_RETRY 事件,例如记录日志或更新订单状态为“待重试”,无需等待后续的 DID_RENEW。在沙盒中,后续是否再次回调 DID_RENEW 取决于模拟的续订尝试是否成功。

回到顶部