我已经在应用程序中实现了每月订阅,以激活Web服务器上的用户。我已经在项目中成功实现了订阅代码。如果用户从Google Play商店“我的应用”配置文件中取消订阅,我想停用用户。如果用户根据document-1和document-2取消订阅产品,我已经实现了获取产品订阅详细信息。
有什么问题?
我无法根据documentation测试订购的订购产品。因此,我将签名的版本交给客户,他们将使用信用卡和实际产品购买进行检查。但是,如何测试用户取消订阅后客户端将得到什么响应?
对于取消产品:
我将服务置于每天获取访问 token 的状态,并检查validUntilTimestampMsec大于零,然后检查autoRenewing标志是否为false(如果两者都为true),然后停用用户。但不知道这种逻辑是对还是错。
if (validUntilDateInMilli > 0) {
if ((System.currentTimeMillis() > validUntilDateInMilli)
&& (!autoRenewingFlag)) {
// call web service to deactivate user
new AsyncTaskDeActivateBusinessOwner().execute();
}
}
我仅从开发人员api的official document得到此响应,如下所示:
{
"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的任何人。
任何帮助将不胜感激。先感谢您。
最佳答案
无论取消订阅的状态如何,Google Play API get都会为您提供类似的Purchases result。因此,当前您无法确定用户是否已取消订阅。
您必须在到期日期之后检查订阅是否有效。
http://developer.android.com/google/play/billing/gp-purchase-status-api.html
将validUntilTimestampMsec
(在“购买”结果中)与当前时间进行比较,以查看订阅是否已结束。