我在我的应用程序中使用应用内订阅。应用程序中有 3 种订阅,即每月、6 个月和每年。如果用户按月订阅,我会在某个时候显示升级订阅。如果用户尝试升级其升级但在显示弹出窗口后(我们无法更改您的订阅计划。管理订阅)。但我能够从界面(onPurchasesUpdated)获取新的令牌和订阅信息。这是下面用于升级的代码。在此处输入图像描述
billingClient.querySkuDetailsAsync(params.build()
) { billingResult, skuDetailsList ->
try {
if (skuDetailsList != null && skuDetailsList.isNotEmpty() && skuDetailsList.size > 0) {
val billingFlowParams = BillingFlowParams.newBuilder()
.setSubscriptionUpdateParams(BillingFlowParams.SubscriptionUpdateParams.newBuilder()
.setOldSkuPurchaseToken(token)
.setReplaceSkusProrationMode(IMMEDIATE_WITHOUT_PRORATION).build())
.setSkuDetails(skuDetailsList[0])
.build()
val responseCode = billingClient.launchBillingFlow(requireActivity(), billingFlowParams)
} else {
CommonUtil.toastShow(requireActivity(), getString(R.string.something_went_wrong))
}
} catch (e: NullPointerException) {
CommonUtil.toastShow(requireActivity(), getString(R.string.something_went_wrong))
}