Ошибки при проверке внутренних платежей Android-iOS и их решение.
Алёна Пономаренкоi-Free
О себе
Релиз-менеджерiOS, Android [ + Tizen, Amazon, whatever]
Цикл релиза с моей точки зрения:Выдача ключей и сертификатовЗаведение ин-аппов и тестовых аккаунтовРелиз!
План доклада
Общая информацияAndroid
Как тестировать и что нужноХороший сценарийПлохие сценарии
iOSКак тестировать и что нужноХороший сценарийПлохие сценарии
Общая информация
В том или ином виде: Песочница Тестовый аккаунт Тестовые билды и тестовые девайсы
Стандартная схема покупки:1. Сама покупка, работают механизмы площадки2. Передача информации о покупке в приложение3. Потребление купленного ин-аппа (consume)4. Ин-апп становится доступным для повторного приобретения
Пункты 3 и 4 только для многоразовых покупок Не всегда
Android
Как это происходит в Android
ПолупесочницаРеальные аккаунты с пометочкой «тестовый»Нужна привязанная карта, но фактически списаний не будетПолноценные логиПростая установка билдовРелизные и черновые билды в админке
Для тестирования платежей
1. Девелоперский аккаунт с объявленными в нём тестовыми аккаунтами
2. Тестовый аккаунт с привязанной к нему кредитной карточкой3. Загруженный, но не опубликованный билд приложения 4. Тестовое устройство, залогиненное в тестовый аккаунт5. Билд из пункта 3 на устройстве из пункта 4
Когда всё хорошо
При нажатии на ин-апп мы видим окно с подписью «это тестовый платёж»Покупка завершается успешно Деньги не списываютсяВ приложении нам начисляются положенные блага
Когда всё плохо
Несовпадение версий
Тестировать платежи можно только на билде той же версии, что и в админке. Что делать: проверить совпадение версий на устройстве и в админкеТолько что загруженная версия может быть не видна приложению часа два-четыре
Connection timed out
Плохое соединение:Практически всегда лечится переключением с 3g на wi-fi и с wi-fi на другой wi-fi.
Купить купленное
Одноразовые и многоразовые (неправда c февраля 2013)Либо разработчик обращается к одноразовым ин-аппам как к многоразовымЛибо Google закрутил покупку между Google Checkout и Google Play, надо подождать пару часов и/или перезагрузиться
Что-то пошло не так
Обычно это проблема покупателей из-за неверно настроенного Google CheckoutЧто делать - стандартные ритуалы: перезагрузиться и подождать немногоКрайняя мера – очистить данные Google Services
Вроде всё хорошо и без ошибок, но...
Или Google сказал, что платёж прошёл успешно, а приложение сказало, что нетЧто делать – подождать, пока программисты починятТакие ин-аппы пропадают бесследно!Скорее всего, это серверная ошибка, связанная с подписьюМожно запомнить слова public key
iOS
Как это происходит в iOS
ПесочницаНикаких реальных карточек и реальных аккаунтовПривязка к стору определённой страныНе нужно никуда заливать билды Зато есть провижены!iTunes Connect для промо-материаловMember Center для разработчиков
Для тестирования платежей
1. «Cкелет» приложения с ин-аппами в iTunes Connect 2. Тестовый аккаунт страны, на которую заведено приложение3. Тестовый девайс, заведённый в Member Center4. Правильно собранный билд, установленный на девайсе из
пункта 3
Когда всё хорошо
При нажатии на ин-апп появляется окно с подписью [Enviroment: Sandbox]
Когда всё плохо
Важное про тестовые аккаунты iOS
Это полностью несуществующий аккаунтНо e-mail должен быть уникальным среди как тестовых, так и реальных акаунтовУ него не нужно вводить информацию о кредитной картеДата рождения ему вводится один раз при создании в админке. При логине в него на устройстве – никогдаЕсли тестовый аккаунт на устройстве просит ввести что-то, кроме логина и пароля – вы его сломали. Совсем.
Требуется верификация
Тестовый аккаунт может быть привязан к устройству лишь одним способом.1. Надо отвязать от устройства все настоящие аккаунты2. Зайти в приложение3. Тапнуть на ин-апп4. И ввести логин-пароль
Все остальные способыне сработают и сломают аккаунт.
Не тот аккаунт или страна
Заведённое приложение недоступно в стране тестового аккаунтаПриложение и тестовый аккаунт принадлежат разным девелоперским аккаунтамВы используете реальный аккаунт
Ошибки, о которых мало кто знает
Очень странная ошибка, такого ограничения нетНо вы можете встретить похожую при упорном тестировании подписок.Лично не встречала
Будьте осторожны при тестировании iOS-подписок
Ошибки, о которых мало кто знает
Может появиться на устройстве с jailbreakИли при крайне плохом соединении с интернетомЛично не встречала
По возможности не тестируйте на устройствах с jailbreakЕсли, конечно, это не часть вашей целевой аудитории
Спасибо!Вопросы?
Allien Po