2

根据文档“当用户在有效计费周期内取消订阅时,Google Play 不会立即通知您的应用购买状态的变化”。也就是说,订阅在活动计费周期结束之前是“有效的”。(在此之前,不能进行新的订阅)。但是,如果您取消订阅并卸载您的应用程序(并重新安装它),是否会触发购买状态更改(onPurchaseStateChange)(因为在这种情况下可以进行新的购买/订阅)或者它是如何工作的?

我也许可以在我的应用程序中使用基于 HTTP 的 API 来请求购买状态(?),但它会在活动计费周期内返回 CANCELED 吗?

也链接到这个问题。

4

1 回答 1

7

但是,如果您取消订阅并卸载您的应用程序(然后重新安装),是否会触发购买状态更改(onPurchaseStateChange)(因为在这种情况下可以进行新的购买/订阅)或者它是如何工作的?

即使在卸载/重新安装后,订阅也会显示为活动状态。因为确实,它是活跃的。在这种情况下取​​消意味着在当前周期结束后不会自动向用户收费。

我也许可以在我的应用程序中使用基于 HTTP 的 API 来请求购买状态(?),但它会在活动计费周期内返回 CANCELED 吗?

是的,您可以使用Google Play Android Developer API。请记住,此 API 需要身份验证令牌;并且您必须使用与发布应用程序相同的 Google 帐户。因此,出于安全原因,这必须在您自己的服务器上完成。

但有趣的是:即使您使用 API 并检查最近取消的订阅,它似乎也是有效的。

这方面的一个示例可能是对 API 的调用以检查已取消的订阅:

https://www.googleapis.com/androidpublisher/v1.1/applications/YOUR-PACKAGE-NAME/
  subscriptions/THE-SUBSCRIPTION-SKU/
  purchases/PURCHASE-TOKEN-GOES-HERE?access_token=AUTH-TOKEN-GOES-HERE

结果将如下所示:

{
 "kind": "androidpublisher#subscriptionPurchase",
 "initiationTimestampMsec": "1379986154994",
 "validUntilTimestampMsec": "1382621354994",
 "autoRenewing": false
}

因此,您必须知道订阅是否被取消的唯一提示是autoRenewing将其设置为 false。这并不意味着您必须停止提供订阅内容。正如文档所理解的那样:

重要提示:在任何情况下,您都必须继续提供订阅者通过订阅购买的内容,只要任何用户都能够访问这些内容。也就是说,您不得在任何用户仍然有效订阅内容时删除任何订阅者的内容,即使该订阅将在当前计费周期结束时终止。删除订阅者有权访问的内容将导致处罚。请参阅政策文件了解更多信息。

于 2013-09-24T17:15:37.917 回答