Ошибки при проверке внутренних
платежей 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-подписок
Ошибки при проверке внутренних платежей Android-iOS и их решение