我正在与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()
。您可以将其与本地缓存算法结合使用,以降低滥用水平。链接到文档
警告: QUERYPCHERASEHISHOYASYNC((进行网络调用,这可能会给App用户收取费用。