【问题标题】:Google Play Billing method "queryPurchaseHistoryAsync" not getting all purchasesGoogle Play 计费方法“queryPurchaseHistoryAsync”未获得所有购买
【发布时间】:2019-08-05 23:41:54
【问题描述】:

我正在开发的应用中有 4 种订阅类型。两个月(一个有折扣)和两个每年(一个有折扣)。我在测试阶段。当我询问购买历史时,我并没有像文档所说的那样获得每种类型的所有最后订阅。而且我得到的购买不是每种 SKU 类型的最后一个。有人有这个问题吗?

这给我带来了宽限期问题,因为我没有得到最后一次购买,所以我没有得到更新的到期时间。

我检查了 Google Play 控制台订单管理,我看到了购买,而且在我的 Google Play 应用程序中也看到了,所以我不知道是什么问题?

【问题讨论】:

    标签: android google-play android-billing


    【解决方案1】:

    如果不提供代码 sn-p,很难理解您的情况。但这里是queryPurchaseHistoryAsync 的一般实现。如果您仍然遇到问题,请提供更多上下文,例如您的实际代码 sn-p 以及您拨打电话的位置。对于下面的 sn-p —— 仅用于测试—— 我在打电话给queryPurchases 之前打电话。

    private fun queryPurchaseHistoryAsync(){
        playStoreBillingClient.queryPurchaseHistoryAsync(BillingClient.SkuType.SUBS){
            responseCode, purchasesList ->
            if(purchasesList.isNullOrEmpty()){
                Log.d(LOG_TAG,"history for SUBS is empty")
            }else{
                Log.d(LOG_TAG,"history subs has ${purchasesList.size} items : ${purchasesList.toString()}")
            }
        }
        playStoreBillingClient.queryPurchaseHistoryAsync(BillingClient.SkuType.INAPP){
            responseCode, purchasesList ->
            if(purchasesList.isNullOrEmpty()){
                Log.d(LOG_TAG,"history for INAPP is empty")
            }else{
                Log.d(LOG_TAG,"history INAPP has ${purchasesList.size} items : ${purchasesList.toString()}")
            }
        }
    }
    

    在我的情况下,获取购买历史记录也没有问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-07
      • 2017-10-03
      • 1970-01-01
      • 2014-03-25
      • 2021-01-17
      • 1970-01-01
      相关资源
      最近更新 更多