2015-10-22 4 views
5

Я пытаюсь осуществить обновление/понижение подписки в приложении для Android. Я считаю, что я правильно выполнил все, но, похоже, он не работает правильно во время моего тестирования.Android IAP getBuyIntentToReplaceSkus не отменяет старую подписку

Мое приложение имеет три варианта: ежемесячные, 3-месячные и 6-месячные варианты подписки. Когда я подписываюсь на любой вариант, я вызываю следующую функцию, где «sku» - это sku для купленного предмета, а «oldSkus» - это skus для других элементов.

buyIntentBundle = mService.getBuyIntentToReplaceSkus(5, 
      mContext.getPackageName(), oldSkus, sku, itemType, extraData); 

Когда я подписаться на вариант 3-Month он прекрасно работает и приложение правильно получает 3-месячную подписку Закуп из Play Store. Если я пытаюсь обновить подписки 6 месяцев, следующий поток происходит:

    диалог
  1. «Изменить подписку» предлагается предоставление мой «Текущий план» и «Новый план» -> Нажмите кнопку «Продолжить»
  2. Детали плана указаны. Нажмите -> «Подписаться» -> «Подтвердить»
  3. Сделка успешна и данные о покупке возвращаются в приложение.
  4. Получить письмо утверждая, что подписка была обновлена ​​с подробной информацией:
    • Предыдущий план: 3 - Месяцы: Отменено
    • Новый план: 6 - Месяцы: Активные Сразу
  5. Go играть счет хранить и просматривать подписки
    • 3 месяца План - Абонентская с кнопкой Отменить Plan
    • 6 месяц - Абонентская с Cance л Кнопка
  6. Запуск приложения и наблюдатель getInventory результаты план
    • 3 месяца - Пользователь подписался
    • 6 месяц план - Пользователь подписался

Насколько я могу сообщите, что старая подписка была неправильно отменена в Play Маркете. Я надеюсь, что это происходит только потому, что я использую счетчик тестера и $/day, который возникает, когда тестирование подписки вызывает некоторые проблемы с про-оценкой.

ОБНОВЛЕНИЕ: Google ответил на мой билет и сообщил мне, что они обострили проблему. Когда я получу еще один ответ, я снова обновлю.

+0

Я тоже тестирую это. Я испытываю подобное поведение. – gswierczynski

+0

Звонок в Google Play Разработчик Api возвращает подписку, которая должна быть отменена, все еще возвращает autoRenewing = true. Обратите внимание, что: https://developer.android.com/google/play/billing/billing_subscriptions.html заявляет, что подписка отменена (и в соответствии с https://developers.google.com/android-publisher/api-ref/покупки/подписки/отмена отменены (не отменены) подписки действительны до конца подписки, хотя это не имеет особого смысла в сценарии обновления). Хотелось бы влюбиться в какой-то Google. – gswierczynski

+0

Возможно, вы попробовали его в производстве? – gswierczynski

ответ

0

Я проверил его с настоящими деньгами. Старая подписка была отменена (я думаю, что она отменена, как это понимает Google Play). После обновления старая подписка больше не отображается в деталях приложения в приложении Google Play - только новая.

Хотя я не уверен, как распознать его с помощью API API разработчика Google Play - как распознать, что эта старая подписка больше недействительна. Метод получения покупки.ресурс subscriptions возвращает autoRenew как false (что хорошо), но недостаточно признать, что функции для этой подписки больше не доступны для пользователя, поскольку это происходит, когда пользователь отменяет подписки и когда пользователь отменяет подписки, функции должны по-прежнему доступный до истечения срока действия.

К сожалению, срок действия, возвращаемый вызовом get, по-прежнему имеет такое же значение, поэтому я не могу использовать это.

UPDATE: метод getPurchases на клиенте Android не возвращает старую подписку после обновления. Интересно, есть ли способ распознать его с помощью API API разработчика Google Play.

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