问题描述
我遇到了一个问题。我已经为 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() 启动流程。