Android:在应用结算中 - 取消订阅

时间:2013-03-21 23:49:04

标签: android in-app-billing

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

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

还链接到this问题。

1 个答案:

答案 0 :(得分: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。这并不意味着您必须停止提供订阅内容。随着文档的同情:

  

重要提示:在所有情况下,您必须继续提供该内容   您的订阅者已通过订阅购买,因为   任何用户都可以访问它。也就是说,你不能删除任何   订阅者的内容,而任何用户仍有活跃的订阅   即使该订阅将在结束时终止   当前的结算周期。 删除订阅者有权获得的内容   访问将导致处罚。请参阅政策文件   了解更多信息。