Как обновить/понизить подписки в Android InAppBilling?

Я потратил неделю на поиски решений для обновления/понижения подписки на Android InAppBilling.

Здесь есть справочная страница об этой функции: http://developer.android.com/google/play/billing/billing_reference.html

Google сказал, что мы могли бы использовать метод getBuyIntentToReplaceSkus(), но я не мог найти документацию об этом в своей подписи. Я также не вижу его в файле IInAppBillingService.aidl, который предоставил Google.

Есть ли кто-нибудь, кто может мне помочь?

Ответ 1

Просто используйте мой файл helpl и будьте счастливы:)

Он отлично работает!

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

* Не изменяйте порядок методов внутри файла helpl или он не будет работать.

Ответ 2

сначала спасибо за файл helpl.

Но для меня это не работает. Я всегда получаю код ошибки 5:

Недействительные аргументы, предоставленные API. Эта ошибка также может указывать что приложение неправильно подписано или правильно настроено для Биллинг в приложении в Google Play или отсутствует разрешений в манифесте

Я не думаю, что разрешения ошибочны или неправильно подписываются как все другие платежные поручения работают.

Это мой код:

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

Как выполнить запрос на обновление или вы видите какую-либо ошибку в моем запросе?

Спасибо Солид

Ответ 4

Это кажется ошибкой/ошибкой от google. Они не обновили файл справки правильно. Вы, вероятно, можете добавить этот метод к файлу aidl самостоятельно (и выяснить правильную подпись с помощью try & error), но если вы можете немного подождать, пока они будут действовать вместе.

Ответ 5

У меня была похожая проблема, и я обнаружил, что 1. она поддерживается только в версии 5. 2. Положение нового sku и старого sku должно быть изменено. Несмотря на то, что методы показывают сначала старые, а затем новые.. сделать по-другому.