Ошибки при проверке внутренних платежей Android-iOS и их решение. Алёна Пономаренко, i-Free
Общая информация В том или ином виде: Песочница Тестовый аккаунт Тестовые билды и тестовые девайсы Стандартная схема покупки: 1. Сама покупка, работают механизмы площадки 2. Передача информации о покупке в приложение 3. Потребление купленного ин-аппа (consume) 4. Ин-апп становится доступным для повторного приобретения Пункты 3 и 4 только для многоразовых покупок Не всегда
Как это происходит в 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 Что делать - стандартные ритуалы: перезагрузиться и подождать немного
Как это происходит в iOS Песочница Никаких реальных карточек и реальных аккаунтов Привязка к стору определённой страны Не нужно никуда заливать билды Зато есть провижены! А также две части админки – iTunes Connect для промо-материалов и Member Center для разработчиков
Что нужно для тестирования платежей 1. Заведённый в iTunes Connect «скелет» приложения с ин-аппами 2. Тестовый аккаунт той страны, на которую заведено приложение 3. Тестовый девайс, заведённый в Member Center 4. Правильно собранный билд, установленный на девайсе из пункта 3
Что происходит, когда всё хорошо При нажатии на ин-апп появляется окно с подписью [Enviroment: Sandbox]
Что происходит, когда всё плохо
Важная информация про тестовые аккаунты iOS Это полностью несуществующий аккаунт Но e-mail должен быть уникальным среди как тестовых, так и реальных акаунтов У него не нужно вводить информацию о кредитной карте Дата рождения ему вводится один раз при создании в админке. При логине в него на устройстве – никогда Если тестовый аккаунт на устройстве просит ввести что-то, кроме логина и пароля – вы его сломали. Совсем.
Требуется верификация Тестовый аккаунт может быть привязан к устройству лишь одним способом. 1. Надо отвязать от устройства все настоящие аккаунты 2. Зайти в приложение 3. Тапнуть на ин-апп 4. И ввести логин-пароль Все остальные способы не сработают. И сломают аккаунт.
Не тот аккаунт или страна Заведённое приложение не доступно в стране тестового аккаунта Приложение и тестовый аккаунт принадлежат разным девелоперским аккаунтам Вы используете реальный аккаунт
Ошибки, о которых мало кто знает Может появиться на устройстве с jailbreak Или при крайне плохом соединении с интернетом Лично не встречала По возможности не тестируйте на устройствах с jailbreak Если, конечно, это не часть вашей целевой аудитории
Ошибки, о которых мало кто знает Очень странная ошибка На самом деле такого ограничения нет Но вы можете встретить похожую при упорном тестировании подписок. Лично не встречала По возможности избегайте тестирования iOS-подписок