繁体   English   中英

我怎么知道该用户刚刚续订了 google play 订阅?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM