简体   繁体   中英

How to upgrade/downgrade subscriptions in Android InAppBilling?

I spent a week looking for solution to upgrade/downgrade subscriptions on Android InAppBilling .

There's a reference page about this function: http://developer.android.com/google/play/billing/billing_reference.html

Google said that we could use getBuyIntentToReplaceSkus() method, but I couldn't found any documentation about that in its signature. I can't also see it in IInAppBillingService.aidl file that Google provided.

Is there any one who may help me?

Just use my aidl file and be happy :)

It works perfectly!

https://gist.github.com/cre8ivejp/21b10fbbc7e500f99059

*Do not change the order of the methods inside aidl file or it will not work.

at first thanks for aidl file.

But for me it is not working. I always get an error code 5:

Invalid arguments provided to the API. This error can also indicate that the application was not correctly signed or properly set up for In-app Billing in Google Play, or does not have the necessary permissions in its manifest

I don't think that the permissions are wrong or it is not correctly signed as all other payment requests work.

This is my code:

List<String> subs = new ArrayList<>();
subs.add(current_sub);
buyIntentBundle = mService.getBuyIntentToReplaceSkus(3, "package", subs,
       key, "subs", getResources().getString(R.string.developer_payload));

How do you execute an upgrade request or do you see any error in my request?

Thanks Solidus

You just have to update the 'aidl' file from the official gitHub, and clean-build the project:

https://github.com/googlesamples/android-play-billing/blob/master/TrivialDrive/app/src/main/aidl/com/android/vending/billing/IInAppBillingService.aidl

You'll be happy forever after.

This seems to be a mistake/bug from google. They have not updated aidl file correctly. You can probably add this method to aidl file yourself (and figure out correct signature by try&error) but if you can you should wait a little while they get their act together.

I had the similar issue and found out that

  1. it is only supported in version 5
  2. the position of new sku (the array list) and old sku should be changed. Even though the methods shows first old and then new.. make the other way.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM