Android IAP getBuyIntentToReplaceSkus未取消旧订阅

时间:2015-10-22 22:25:45

标签: android in-app-purchase

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

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

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

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

  1. '更改订阅'提示对话框提供我的当前计划'和新计划' - >点击“继续'
  2. 概述了计划详情。点击 - > '订阅' - > '确认'
  3. 交易成功,购买数据返回给应用程序。
  4. 接收电子邮件声明订阅已更新,详情如下:
    • 以前的计划:3个月:取消
    • 新计划:6个月:立即生效
  5. 转到Play商店帐户并查看订阅
    • 3个月计划 - 订阅“取消”按钮
    • 6个月计划 - 订阅“取消”按钮
  6. 启动app和observer getInventory结果
    • 3个月计划 - 用户已订阅
    • 6个月计划 - 用户已订阅
  7. 据我所知,Play商店没有正确取消旧订阅。我希望这只会发生,因为我使用的是测试人员帐户,并且在测试订阅时发生的$ / day导致了评级的一些问题。

    更新:Google已对我的机票做出回应并通知我他们已将问题升级。当我得到另一个回复时,我会再次更新。

1 个答案:

答案 0 :(得分:0)

我用真钱测试了它。 旧订阅被取消(我认为Google Play理解它的方式已被撤销)。 升级后,旧版订阅将不再显示在Google Play应用中的应用详细信息中 - 只有新版本。

虽然我不确定如何通过Google Play Developer API调用识别它 - 如何识别此旧订阅不再有效。 Purchases.subscriptions资源上的get方法确实将autoRenew返回为false(这很好),但仅仅认识到该订阅的功能不再适用于用户是不够的,因为当用户取消订阅和用户取消时会发生同样的情况订阅功能在到期期限之前仍应可用。

不幸的是,get调用返回的到期时间仍然具有相同的值 - 所以我无法使用它。

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