首页 文章

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

提问于
浏览
2

根据文档“当用户取消订阅 during an active billing cycle 时,Google Play会立即通知您的应用,购买状态发生变更". That is, the subscription is "有效”,直到有效结算周期结束 . (在此之前,不能进行新的订阅) . 但是,如果您取消订阅并卸载您的应用程序(并重新安装它),是否会触发购买状态更改(onPurchaseStateChange)(因为在这种情况下可以进行新的购买/订阅)或者它是如何工作的?

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

链接到this问题 .

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

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

相关问题