簡體   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