2015-04-28 2 views
10

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

Там есть ссылка на страницу об этой функции: http://developer.android.com/google/play/billing/billing_reference.html

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

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

ответ

0

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

5

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

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

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

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

+0

@ Solidus0815, как описано в документации, ошибка происходит потому, что getBuyIntentToReplaceSkus была реализована на апи версии 5 и 3. Вам просто нужно изменить первый параметр из ** 3 ** до ** 5 ** здесь 'mService.getBuyIntentToReplaceSkus (5," package ", subs, ключ," subs ", getResources(). getString (R.string.developer_payload)); ' – gaijinboy

+0

@ Solidus0815 Я рад, что вы сделали это :) – gaijinboy

+0

я использовал тот же код, как' getBuyIntent' из IabHelper так: 'Bundle buyIntentBundle = mService.getBuyIntentToReplaceSkus (5, mContext.getPackageName(), oldSkus , newSku, ItemType, ExtraData); ' Однако ' pendingIntent pendingIntent = buyIntentBundle.getParcelable (RESPONSE_BUY_INTENT); 'pendingIntent равно нулю. – Shark

1

сперва спасибо за файл helpl.

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

Недопустимые аргументы, предоставляемые API. Эта ошибка может также указать , что приложение не правильно подписаны или правильно настроить для In-App Billing в 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)); 

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

Благодаря Солид

+0

@gaijinboy спасибо, человек, который был довольно глупым из меня: D: D: D , наконец, все работает как ожидается – Solidus0815

+0

Если кто-то ищет то, что @gaijinboy сказал , выполните следующие действия: https://stackoverflow.com/questions/29915035/how-to-upgrade-downgrade-subscriptions-in-android-inappbilling#comment52158082_31880778 – Heisenberg

Смежные вопросы