java - 由于 setOldSku(String oldSku) 已折旧

标签 java android play-billing-library

既然setOldSku(String oldSku)已经被折旧了,如何获取purchasetoken并在setOldSk的新方法中传递呢?

 public void initiatePurchaseFlow(final SkuDetails skuDetails, final String oldSkuId) {
    Runnable purchaseFlowRequest = new Runnable() {
        @Override
        public void run() {
            Log.d(TAG, " SKU Details: " + skuDetails.getTitle());
            BillingFlowParams purchaseParams = BillingFlowParams.newBuilder()
                    .setSkuDetails(skuDetails).setOldSku(oldSkuId, myPurchaseToken).build();
            mBillingClient.launchBillingFlow(mActivity);
        }
    };

    executeServiceRequest(purchaseFlowRequest);
}

最佳答案

将此方法替换为已弃用的方法,并根据您的要求使用ProrationMode

Learn more about ProrationMode

private fun updatePurchase(skuDetails: SkuDetails) {
   val updateParams = BillingFlowParams.SubscriptionUpdateParams.newBuilder()
       .setOldSkuPurchaseToken("oldPurchaseToken")
       .setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.IMMEDIATE_AND_CHARGE_PRORATED_PRICE)
       .build()
 
   val billingFlowParams = BillingFlowParams.newBuilder()
       .setSkuDetails(skuDetails)
       .setSubscriptionUpdateParams(updateParams)
       .build()
 
   billingClient.launchBillingFlow(this, billingFlowParams)
}

以下方法适用于较新的计费库

关于java - 由于 setOldSku(String oldSku) 已折旧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62476717/

相关文章:

android - OpenGL ES Android 加载屏幕

安卓应用内结算 : Refunded in-app purchases not cancelled

android - 在 Android 的 ListView 中滚动时出现黑屏

java - 将 DialogFragment 中的属性设置到 MainActivity 中

android - Google Play Billing Library 1.0 (2017) - 破解更容易吗?

java - 单例客户端连接器

javascript - 尝试从 java 类访问 javascript 时出现错误

java - 如何循环查找Arraylist中的最大值

java - 快速排序-枢轴选择策略如何影响快速排序的整体Big-oh行为?