Since setOldSku(String oldSku) is depreciated

Viewed 834

Since setOldSku(String oldSku) is depreciated, how to get the purchasetoken and pass it in the new method of 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);
}
2 Answers

Replace this method with deprecated and use ProrationMode as per your requirements.

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)
}

below method for newer billing lib

Just downgrade it to 'com.android.billingclient:billing:2.0.1' for the time being.

Related