我怎么知道用户只是续签了Google Play订阅



我正在与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用户收取费用。

最新更新