来自google developer api android的取消订阅产品的响应是什么?

时间:2013-10-04 07:07:42

标签: android google-api in-app-purchase in-app-billing subscription

我已在我的应用程序中实施了每月订阅,以在我们的网络服务器上激活用户。我在我的项目中成功实现了订阅代码。如果用户从Google Play商店我的应用配置文件取消订阅,我想停用用户。如果用户根据document-1document-2取消订阅产品,我已实施了产品订阅详情。

有什么问题?

我无法根据documentation测试订阅产品购买情况。因此,我会将签名的版本提供给客户,他们将使用信用卡和实际产品购买进行检查。但是,如何测试客户在订阅被用户取消时将获得的响应是​​什么?

取消产品: 我将服务设置为每天获取访问令牌并检查validUntilTimestampMsec是否大于零然后检查autoRenewing标志是否为false,如果两者都为真则停用用户。但不知道这种逻辑是对还是错。

if (validUntilDateInMilli > 0) {
    if ((System.currentTimeMillis() > validUntilDateInMilli)
                        && (!autoRenewingFlag)) {
        // call web service to deactivate user

        new AsyncTaskDeActivateBusinessOwner().execute();
    } 
}

我只得到了official document开发者api的回复,如下所示:

{
  "kind": "androidpublisher#subscriptionPurchase",
  "initiationTimestampMsec": {long},
  "validUntilTimestampMsec": {long},
  "autoRenewing": {boolean}
}

根据我在Google和StackOverFlow上搜索的内容,但没有文档我发现以下条件的响应是什么:

what is the response 

1) if the user currently has the subscription and 
2) if user has cancelled subscription(in 15 days) or if subscription cycle is completed.

请从Google开发人员api测试订阅端到端购买和取消订阅validUntilDate的任何人。

任何帮助都将非常感谢。提前谢谢。

1 个答案:

答案 0 :(得分:4)

无论订阅取消状态如何,

Google Play API get都会为您提供类似的Purchases result。因此,目前,您无法确定用户是否已取消订阅。

您必须在到期日期后检查订阅是否有效。

  

仅在到期时查询订阅状态 - 一旦您的服务器检索到订阅令牌的到期日期,在订阅到达或已经过期时,它不应再次向Google Play服务器查询订阅状态。

http://developer.android.com/google/play/billing/gp-purchase-status-api.html

validUntilTimestampMsec(在购买结果中)与当前时间进行比较,以查看订阅是否已结束。