![](/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.