多个用户购买自动续期订阅商品,HarmonyOS 鸿蒙Next中提示由于已经拥有该商品,购买失败

多个用户购买自动续期订阅商品,HarmonyOS 鸿蒙Next中提示由于已经拥有该商品,购买失败 A用户登录应用,购买自动续期订阅商品,购买成功。

A用户退出登录,然后登录B用户,再次购买自动续期订阅商品,购买失败,错误码 1001860051 ,由于已经拥有该商品,购买失败

Failed to create purchase. Code is 1001860051, message is BusinessError 1001860051: Failed to purchase a product because the user already owns the product. IAP_RESPONSE_RESULT_ITEM_ALREADY_OWNED

更多关于多个用户购买自动续期订阅商品,HarmonyOS 鸿蒙Next中提示由于已经拥有该商品,购买失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

可能是用户退出后没有清除用户的购买记录状态,导致新用户登录后购买时出现冲突。

可通过queryPurchases接口确认用户是否购买了该商品。

参考:华为开发者官网

若商品为消耗型商品,检查商品是否发货,确认发货成功之后调用finishPurchase接口完成购买,下次可正常购买。

参考:华为开发者官网

若商品为非消耗型商品或自动续期订阅商品,已经购买则不能再次购买。

关于多角色应用接入订阅专项说明:

用户购买订阅型商品时使用的帐号是华为帐号,一个华为帐号在同一订阅商品上只能同时存在一笔订阅。如果您的应用存在多角色即对于一个华为账号存在多个应用账号相互切换购买同一个订阅商品,可能会存在权益发放错乱的现象。针对这个场景建议的处理方案如下:

  1. 当用户为角色A购买订阅型商品后,该用户的其他角色只允许购买普通包周期商品服务(您可以通过华为消耗型商品自行实现);

  2. 当用户为角色A购买订阅型商品后,再为角色B购买订阅型商品时,您可以自行设计将角色A的剩余权益转移给角色B;

  3. 建议您配置多个订阅型商品。如游戏不同区服对应不同角色,每个区服创建独立的订阅商品;

详情请参考官方文档:华为开发者官网

不建议根据subGroupGenerationId去找这个订阅下之前的订单来判定这个订阅之前属于应用账号A还是属于应用账号B,并发放权益;因为在进入账号保留期内不同应用账号恢复订阅此逻辑在IAP侧是无法感知到的 ,所以此方案无法解决这个问题;

华为帐号在同一订阅商品上只能同时存在一笔订阅 ,同一个华为账号下, 如果应用账号A创建订阅,到期后进入账号保留期,切换到应用账号B在app内购买,相当于恢复订阅A,但是应用账号B这边,就会出现我付钱了,但是我没有权益的问题;此时建议在为角色B购买订阅型商品时,可以自行设计将角色A(即应用账号A)的剩余权益转移并发放给角色B(即浩辰账号B)

更多关于多个用户购买自动续期订阅商品,HarmonyOS 鸿蒙Next中提示由于已经拥有该商品,购买失败的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,当多个用户尝试购买自动续期订阅商品时,系统会检测到该商品已经被其中一个用户拥有,从而提示“已经拥有该商品,购买失败”。这是由于鸿蒙Next的订阅管理机制会自动识别并阻止重复购买同一订阅商品,以避免用户被多次扣费或产生不必要的订阅冲突。系统会根据用户的账户信息和订阅状态进行校验,确保每个用户只能拥有一个有效的订阅实例。如果用户确实需要重新购买或更改订阅,可以尝试取消现有订阅后再进行操作。

在HarmonyOS鸿蒙Next中,若多个用户购买自动续期订阅商品时提示“已拥有该商品”,可能是由于以下原因:

  1. 账户共享:确保每个用户使用的是独立的账户,而非共享同一账户。
  2. 订阅状态检查:系统检测到当前账户已订阅该商品,避免重复购买。
  3. 设备限制:部分订阅可能限制在特定设备上使用,需确认设备绑定情况。

建议用户登录各自账户,检查订阅状态,或联系开发者确认订阅规则。

回到顶部