【问题标题】:Android subscriptions getPurchasesAndroid 订阅 getPurchases
【发布时间】:2016-10-18 22:07:18
【问题描述】:

我在我的应用中使用订阅,出于测试目的,我正在使用购买测试订阅的测试开发人员。

我已向该测试开发人员购买了三个月的应用订阅。之后,我从我的用户帐户中取消了该订阅(这基本上意味着设置 renewing=false)。一旦我取消订阅,我就可以从应用程序再次购买它(它应该“合并”订阅并延迟您的到期时间。例如,如果 a 还剩一个月并再购买三个月,我的新 wxpiry 日期应该是四个月内)。

当我调用 getPurchases() 方法时,我在第一次购买时获得的相同购买数据被返回(没有任何变化,不是令牌,不是购买日期)。

当我使用此数据通过 google 开发人员 API 向服务器请求服务器时(我知道的唯一请求到期日期的方法),返回的到期日期是过去的。因此,如果我执行一些业务逻辑,我必须考虑订阅已过期,但这是我在查询 getPurchases() 时从 GooglePlay 收到的数据。在文档中它说“getPurchases() 方法不会返回失败或过期的订阅”。

所以,我的想法是,当我第二次购买时,必须生成一个新的购买数据,用新的令牌来查询服务器到服务器,但我没有收到它。

对可能发生的事情有什么想法吗?

我还想知道在我的谷歌帐户中哪里可以看到这些订单,因为我已经在我的商家帐户中签入了,但我没有看到它们。 谢谢!

【问题讨论】:

    标签: android in-app-billing billing subscriptions


    【解决方案1】:

    鉴于 3 年过去了,我假设您使用的是 Google In-App Billing v2。

    尽管如此,v3 中仍然存在问题(至少对于沙盒/测试帐户而言)和同步问题。您真的只能依靠 Google In-App Billing v3 API (GIABAPIv3) 在付款弹出流程成功完成后为您提供新的purchaseTokendeveloperPayload。正如我经常观察到的,getPurchases 返回的purchaseData 可能与现实不同步*。此外,GIABAPIv3 弹出流的行为可能与现实不同步*。

    GIABAPIv3 的purchaseData 可能反映错误的isAutoRenewing 状态,GIABAPIv3 弹出流也可能如此!例如,订阅可能在现实中被取消(并过期)*,但 GIABAPIv3 和它的弹出窗口都表明用户仍然订阅。在这种情况下,再次取消(通过 Google Play 应用)似乎有助于鼓励 GIABAPIv3 同步。

    "getPurchases() 方法不返回失败或过期 订阅。”

    与此相反,getPurchases 将返回“已取消”购买的数据。奇怪的是,GDAPI expiryTime 将从正常订阅结束时间更改为取消购买时间。因此,为了实现理想的行为,即您的应用程序继续将用户视为已订阅,直到订阅结束,您的服务器将需要记住原始到期时间。如果expiryTime AutoRenewing 也已更改为 false)。 https://developer.android.com/google/play/billing/billing_integrate.html “该调用返回一个包含用户拥有的所有活动订阅的 Bundle。一旦订阅过期而没有续订,它将不再出现在返回的 Bundle 中。” 这让我得出结论,谷歌使用了上面的“过期”这个词和字段名称expiryTime 很差,它们并不完全相关(expiryTime 将代表取消的时间,如果发生这种情况,以及真正的到期(订阅结束) 将无法通过 GDAPI 获得 - 人们必须记住它或通过在 GIABAPIv3 中没有购买来推断它^)。

    *这里的现实与人类用户所做的和 Google Developer API (GDAPI) 所说的一致。

    ^我不能说我见过这种情况,这可能是沙盒/测试每日重置的症状。我在现实中看到已取消和过期的订阅* 几天后继续出现在 GIABAPIv3 中(只有在 Google Play 应用中重新取消才会同步回现实*)。

    【讨论】:

      猜你喜欢
      • 2017-11-22
      • 1970-01-01
      • 2014-06-13
      • 2015-06-30
      • 1970-01-01
      • 2014-03-01
      • 1970-01-01
      • 2018-12-30
      • 1970-01-01
      相关资源
      最近更新 更多