华为应用内支付做消耗时提示已经消耗 HarmonyOS鸿蒙Next

华为应用内支付做消耗时提示已经消耗 HarmonyOS鸿蒙Next 关键词
重复消耗,华为应用迁移

问题描述
集成华为应用内支付服务SDK,按照要求接入了消耗型商品的补单流程,模拟掉单场景测试。发现有掉单的订单,就调用客户端的obtainOwnedPurchases接口,拿到掉单的数据,支付校验成功后,准备做消耗,我用的是Order服务确认购买接口,即在服务器做消耗,但是此时返回了错误码9(商品已经消耗或者确认,不能再次消耗或者确认)。

我检查确定在这之前没有做过客户端消耗和服务器消耗。

问题分析
找到华为技术支持(可以提交工单:https://developer.huawei.com/consumer/cn/support/feedback/#/),对方让我提供华为订单号,经查询是在服务器做的消耗,也就是说实际上我们重复做了服务器消耗的操作,但是我确定我们服务器没做消耗。

华为同学把游戏接收回调通知的服务器地址发出来后,我才发现,AGC后台填了个地址,但是不是我们的,是迁移前上家公司配置的。

也就是说,游戏做了迁移,迁移前配置了服务器回调通知地址,收到支付成功通知后会去校验并做消耗,迁移后,这个地址跟着应用过来了,仍然保留了之前的那套消耗逻辑,但是我不知道,所以当我收到客户端支付回调后发完货再去我们服务器做消耗时,订单已经被消耗了。

问题解决
最后,把后台的服务器回调通知地址删掉,只保留我们自己的逻辑,支付测试正常,问题解决。


更多关于华为应用内支付做消耗时提示已经消耗 HarmonyOS鸿蒙Next的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于华为应用内支付做消耗时提示已经消耗 HarmonyOS鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在华为应用内支付中,如果提示“已经消耗”,通常表示该商品或订单已经被成功消耗,无法再次进行消耗操作。这可能是由于以下原因:

  1. 重复操作:用户或系统可能已经对该订单进行了消耗操作,导致无法再次消耗。
  2. 订单状态:订单可能已经处于“已消耗”状态,无法再次处理。
  3. 系统缓存:系统缓存可能导致状态未及时更新,建议检查订单状态或刷新页面。

建议开发者检查订单状态,确保操作正确,并处理异常情况。

回到顶部