![](/img/trans.png)
[英]How to determine if a in-app subscription on Google Play has been renewed?
[英]How can I know that user just renewed a google play subscription?
我正在与 google play 订阅合作,但不知道如何知道用户何时将计划再续订一段时间。 我给了 3 个积分来使用我的应用程序的一项功能,如果续订订阅,用户每月将获得 3 个积分。
我正在使用下面的这种方法监控用户计划,但它会缓存用户订阅一段时间,所以我担心当用户实际上没有续订订阅时,我会再给他 3 个积分。
fun queryPurchases() {
val purchasesResult = mBillingClient?.queryPurchases(BillingClient.SkuType.SUBS)
if (mBillingClient?.isFeatureSupported(BillingClient.FeatureType.SUBSCRIPTIONS)?.responseCode == BillingClient.BillingResponseCode.OK) {
if (purchasesResult?.responseCode == BillingClient.BillingResponseCode.OK) {
purchasesResult.purchasesList?.addAll(
purchasesResult.purchasesList)
}
}
if (purchasesResult != null && purchasesResult.purchasesList != null) {
if (purchasesResult.purchasesList.isEmpty()){
purchasedPlan.postValue(null)
}else {
purchasedPlan.postValue(purchasesResult.purchasesList[0])
}
}
}
我该如何正确处理这种情况? 我想过在下个月给用户 3 个积分,如果计划突然变成免费计划,我会删除 3 个积分,但我认为这种方法会很容易滥用
要获取有关订阅的最新信息,您可以使用queryPurchaseHistoryAsync()
而不是queryPurchases()
。 您可以将其与本地缓存算法结合使用,以降低滥用程度。 文档链接
警告: queryPurchaseHistoryAsync() 进行网络调用,这可能会导致向应用程序用户收费。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.