我正在测试一款具有应用内订阅功能的应用。我使用测试订阅来测试似乎有用的购买。然后,我想测试该应用程序响应已取消的订阅,因此我从Play中取消了订阅。但是,getPurchase()调用仍会返回购买对象。我正在使用TrivalDrive示例中的代码,包括IABHelper。
if (refsub != null && refsub.isAutoRenewing()) {
mRefTechSku = REFTECH_SKU;
mAutoRenewEnabled = true;
} else {
mRefTechSku = "";
mAutoRenewEnabled = false;
}
// The user is subscribed if either subscription exists, even if neither is auto
// renewing
mSubscribedToRefSub = (refsub != null && verifyDeveloperPayload(refsub));
mSubscribedToRefSub返回true,而我期望它返回false。但是,mAutoRenewEnabled确实返回false,但这是检查活动订阅的有效方法,因为我们需要在订阅期结束之前保持应用程序处于活动状态。
答案 0 :(得分:0)
是的,这是正确的。
https://developer.android.com/google/play/billing/billing_subscriptions.html#cancellation
它表示取消订阅意味着用户应该能够在到期日之前享受订阅(因为不会退款),但此订阅将不会在此之后续订。
由于到期时间仍然相同,订阅将在getPurchases()方法中返回,但自动续订字段将为false。
因此,在此方法返回订阅时,您必须向订阅者提供其内容/功能。
答案 1 :(得分:0)
感谢您的回复。事实证明,对于mSubscribedToRefSub开始返回false,从Play商店显示订阅已被取消可能需要一天的时间。所以它确实有效但不是马上就可以了。