但是,如果您取消订阅并卸载您的应用程序(然后重新安装),是否会触发购买状态更改(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。这并不意味着您必须停止提供订阅内容。正如文档所理解的那样:
重要提示:在任何情况下,您都必须继续提供订阅者通过订阅购买的内容,只要任何用户都能够访问这些内容。也就是说,您不得在任何用户仍然有效订阅内容时删除任何订阅者的内容,即使该订阅将在当前计费周期结束时终止。删除订阅者有权访问的内容将导致处罚。请参阅政策文件了解更多信息。