问题
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?
回答1:
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.
回答2:
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
回答3:
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.
回答4:
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.
回答5:
I had the similar issue and found out that
- it is only supported in version 5
- 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.
来源:https://stackoverflow.com/questions/29915035/how-to-upgrade-downgrade-subscriptions-in-android-inappbilling