Android IAP getBuyIntentToReplaceSkus 未取消旧订阅

Android IAP getBuyIntentToReplaceSkus is not canceling the old subscription

我正在尝试在我的 Android 应用程序中实施 upgrading/downgrading 订阅。我相信我已经正确地实现了所有内容,但是在我的测试过程中它似乎 运行 不正确。

我的应用程序有三个选项:每月、3 个月和 6 个月的订阅选项。当我订阅任何选项时,我调用以下函数,其中 'sku' 是所购买商品的 sku,'oldSkus' 是其他商品的 sku。

buyIntentBundle = mService.getBuyIntentToReplaceSkus(5,
          mContext.getPackageName(), oldSkus, sku, itemType, extraData);

当我订阅 3 个月选项时​​,它运行良好,应用程序正确地从 Play 商店收到 3 个月订阅购买。如果我尝试升级到 6 个月订阅,则会出现以下流程:

  1. 'Change Subscription' 对话框提示提供我的 'Current Plan' 和 'New Plan' -> 单击 'Continue'
  2. 概述了计划详细信息。单击 -> 'Subscribe' -> 'Confirm'
  3. 交易成功,购买数据返回应用
  4. 收到电子邮件,声称订阅已更新,其中包含详细信息:
    • 之前的计划:3 个月:已取消
    • 新计划:6 个月:立即生效
  5. 转到 Play 商店帐户并查看订阅
    • 3 个月计划 - 使用取消按钮订阅
    • 6 个月计划 - 使用“取消”按钮订阅
  6. 启动应用程序并观察 getInventory 结果
    • 3 个月计划 - 用户已订阅
    • 6 个月计划 - 用户已订阅

据我所知,旧订阅并未被 Play 商店正确取消。我希望这只会发生,因为我使用的是测试员帐户,而测试订阅时发生的 $/day 会导致按比例计费出现一些问题。

更新:Google 已回复我的工单并通知我他们已将问题升级。等有回复我再更新

我用真钱测试过。 旧订阅被取消了(我认为以 Google Play 理解的方式被撤销)。 升级后,旧订阅在 Google Play App 的应用详情中不再可见 - 只有新订阅可见。

尽管我不确定如何通过 Google Play Developer API 调用来识别它 - 如何识别这个旧订阅不再有效。 Purchases.subscriptions 资源上的 get 方法将 return autoRenew 设置为 false(这很好),但不足以识别该订阅的功能不应再对用户可用,因为当用户时会发生同样的情况取消订阅,当用户取消订阅时,这些功能在到期前仍应可用。

不幸的是,get 调用的过期 return 仍然具有相同的值 - 所以我不能使用它。

更新:Android 客户端上的 getPurchases 方法在升级后未 returning 旧订阅。我想知道是否有办法通过 Google Play Developer API 调用来识别它。