我已在我的应用程序中实施了每月订阅,以在我们的网络服务器上激活用户。我在我的项目中成功实现了订阅代码。如果用户从Google Play商店我的应用配置文件取消订阅,我想停用用户。如果用户根据document-1和document-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的任何人。
任何帮助都将非常感谢。提前谢谢。
答案 0 :(得分:4)
Google Play API get都会为您提供类似的Purchases result。因此,目前,您无法确定用户是否已取消订阅。
您必须在到期日期后检查订阅是否有效。
仅在到期时查询订阅状态 - 一旦您的服务器检索到订阅令牌的到期日期,在订阅到达或已经过期时,它不应再次向Google Play服务器查询订阅状态。
http://developer.android.com/google/play/billing/gp-purchase-status-api.html
将validUntilTimestampMsec
(在购买结果中)与当前时间进行比较,以查看订阅是否已结束。