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

Dan*_*Dan 2 android in-app-billing

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

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

也链接到这个问题.

Cri*_*ian 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
Run Code Online (Sandbox Code Playgroud)

结果如下:

{
 "kind": "androidpublisher#subscriptionPurchase",
 "initiationTimestampMsec": "1379986154994",
 "validUntilTimestampMsec": "1382621354994",
 "autoRenewing": false
}
Run Code Online (Sandbox Code Playgroud)

因此,如果取消订阅,您必须知道的唯一提示autoRenewing是设置为false.这并不意味着您必须停止提供订阅内容.随着文档的同情:

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