华为应用内仅某个商品无法购买 HarmonyOS鸿蒙Next

华为应用内仅某个商品无法购买 HarmonyOS鸿蒙Next 问题描述
集成华为应用内支付服务 SDK 之后,我应用内创建的都是消耗型商品。测试支付功能,发现某个商品无法购买,但是其他商品都没问题,且我换了个华为帐号后去购买该商品,是可以拉起支付的。

问题分析
联系华为技术支持(可提交工单 https://developer.huawei.com/consumer/cn/support/feedback ),他说一般无法购买一个商品,换其他商品或者换个华为帐号支付都没问题的,基本上是这个帐号之前购买过该商品,且未做消耗。

怎么验证呢?可以复现问题,取全量日志,搜索关键词 “hmssdk” 或者 “hms_pay” ,分别可以获取到报错信息:

getBuyResultInfoFromIntent:60051
createOrder onResponse responseCode:7,responseMessage:ITEM_ALREADY_OWNED

这两个错误都表示(当前华为帐号)已经拥有了该商品(未做消耗,不得再次购买)。

问题解决
那么要如何解决呢?

华为提供了客户端的补单查询逻辑:
https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/redelivering-consumables-0000001051356573

按照文档要求,在这些场景下触发补单机制,调用查询接口 obtainOwnedPurchases ,可以获取到未消耗的订单,然后做校验、发货、消耗即可。消耗之后,下次就可以再次购买那个商品了。

我把补单逻辑修改完善后,问题解决。

补充重要的一点
当前华为已经提供了服务端支付回调通知,强化补单能力,减少掉单几率,有需求的可以参考接入:
https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/notifications-about-subscription-events-0000001050035037

为了防止服务器出现一些特殊问题或者有的开发者没有服务器的,客户端补单机制还是要接入的哦,作为一个兜底保障。


更多关于华为应用内仅某个商品无法购买 HarmonyOS鸿蒙Next的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

学习

更多关于华为应用内仅某个商品无法购买 HarmonyOS鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在华为应用内遇到某个商品无法购买的问题,可能的原因包括:

  1. 商品下架或库存不足:该商品可能已下架或库存为零。
  2. 区域限制:某些商品可能仅在特定区域销售。
  3. 支付问题:支付方式不支持或支付系统故障。
  4. 应用版本问题:应用版本过旧,建议更新至最新版本。
  5. 系统兼容性:鸿蒙Next系统可能存在兼容性问题,建议检查系统更新或联系开发者。

建议先尝试更新应用和系统,如问题依旧,联系应用客服获取进一步帮助。

回到顶部