我怎么知道用户刚刚续订了 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()
。您可以将其与本地缓存算法结合使用以降低滥用程度。 Link to documentation
警告:queryPurchaseHistoryAsync() 进行网络调用,这可能会导致向应用程序用户收费。
我正在使用 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()
。您可以将其与本地缓存算法结合使用以降低滥用程度。 Link to documentation
警告:queryPurchaseHistoryAsync() 进行网络调用,这可能会导致向应用程序用户收费。