2

我在我的应用程序中使用应用内订阅。应用程序中有 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))
                }
4

0 回答 0