SkuDetails 未随价格变化而更新

问题描述

我遇到了一个问题。我已经为 android 应用程序实现了 Google 的应用内结算,每当我更新应用内产品的价格时,它都会在触发 billingClient.launchBillingFlow() 时反映在应用内结算屏幕中。但我也在使用 SkuDetails 获取回调来显示实时定价。它仍在接收旧定价。

我正在获取如下的 skudetails。

billingClient.querySkuDetailsAsync(skuDetailsParams) { billingResult,skuDetailsList ->
        if (skuDetailsList != null && skuDetailsList.isNotEmpty()) {
            OnSkuDetailsFetchListener.onSkuDetailsFetchSuccessful(skuDetailsList[0])
        } else {
            OnSkuDetailsFetchListener.onSkuDetailsFetchFailure()
        }
    }

收到的 SkuDetails 是旧价格,因此我最终会在我自己的应用程序的 UI 上显示旧价格,但是当用户点击购买按钮时,谷歌的 UI 会显示更新的价格。

如何解决?对于用户来说,这绝对不是正确的体验。 注意:即使清除应用数据/重新安装应用,SkuDetails 也从未更新。

解决方法

当您使用计费 API 查询用户库存时,您使用 launchPriceChangeConfirmationFlow() 启动流程。