Перейти к основному содержимому

Construct 3 - Покупки

Пример совершения и обработки платежей в игре.

Скачать исходник

Перед началом работы​

Для того, чтобы понимать алгоритм работы с покупками рекомендуется ознакомиться с актуальными правилами работы в документации.

Важные моменты:

  1. Поддерживаемые площадки
  2. Правила проведения одноразовых покупок
  3. Правила проведения постоянных покупок

Добавляем покупки в личный кабинет​

Предположим в игре планируется реализовать следующие покупки:

  1. Тысяча монет (одноразовая покупка)
  2. Десять ключей (одноразовая покупка)
  3. VIP статус (постоянная покупка)
  4. Скин для игрока (постоянная покупка)

В личном кабинете переходим в раздел покупок и нажимаем кнопку «Добавить» (покупки -> добавить покупку).

Рассмотрим интерфейс добавления покупки (по умолчанию):

Полей может быть большие в зависимости от выбранных платформ.

Для того, чтобы добавить покупку мы указываем:

  1. Тег для обращения в программе
  2. Отображаемое название
  3. Отображаемое описание
  4. Дополнительная информация в зависимости от платформы (см. следующий скриншот)
  5. Иконку
tip

Если какой-то язык перевода не доступен, то проверьте, что вы указали данный язык как поддерживаемый в настройках проекта.

Если вы уже добавили платформы, то у вас появятся дополнительные поля (если это необходимо). Например, ID покупки в яндексе. Вы сначала создаете информацию здесь, а потом копируете в яндекс. Мы к этому вернемся, когда будем добавлять платформы.

Пример заполнения:

После заполнения информации о покупках нажимаем «Добавить» (система подписок будет рассмотрена в отдельном туториале).

Заполняем все наши планируемые покупки (можно добавлять и те, которые еще не реализованы или только планируются в дальнейшем).

Пример заполнения:

Добавляем на платформы​

В первую очередь добавляем платформы в GamePush (если вы этого еще не сделали).

Яндекс​

Добавляем любую покупку с указанием ID из личного кабинета GamePush. На примере можно видеть какие параметры должны быть одинаковыми.

Копируем secret key из консоли ЯИ в консоль GamePush.

Остальные платформы​

Посмотрите актуальную информацию по заполнению информации на стороне платформы в документации платежей в разделе «Настройки платформ».

Реализация покупки​

Подготовительный этап мы закончили, теперь можем перейти к реализации на стороне игры. В первую очередь мы обработаем событие покупки.

Рассмотрим шаблон работы с покупками (скачать).

У нас есть несколько одинаковых кнопок, по которым игрок может осуществить покупку. У каждой из них есть переменная со своим значением тега (который мы подключали ранее):

Асинхронный метод​

Рассмотрим следующий код для одноразовой покупки:

Когда игрок кликает по кнопке, отправляем запрос на осуществление покупки по тегу, указанный в переменной кнопки.

Когда происходит успешная покупка, то запускаем ассинхронную функцию, которая обрабатывает покупку. Обновляем переменные, синхроизируемся и ждем завершения. Далее тратим покупку, так как покупка одноразовая.

Функция начисления ключей аналогична.

Рассмотрим следующий код для постоянной покупки:

Можно заметить, что кода стало меньше.

Мы также при клике по кнопке активируем покупку. Если произошла успешная покупку, то мы активируем только функционал випа внутри игры.

Дополнительные переменные в облаке не требуются, так как мы при старте будем проверять наличие покупки.

Пример результата далее. Функция активация скина аналогична.

Синхронный метод​

Вместо обработки события у нас все действия будут происходить в событии нажатия на кнопку покупки. Рассмотрим на примере следующего кода:

Во время нажатия на кнопку мы также запускаем процесс покупки, но в этот раз дожидаемся её завершения. Если покупка была проведена успешно, то проверяем тег и запускаем соответствующую функцию активации с предыдущей реализации.

Проверка покупок​

При старте игры важно провести следующие процедуры:

  1. Потратить покупки, которые не были потрачены
  2. Проверить наличие постоянных покупок

Синхронный вариант​

Рассмотрим сначала следующие стартовые действия:

Сначала у нас проверяются постоянные покупки, следом по очереди проверяются одноразовые покупки (ассинхронные функции) и после каждой из них ждем сигнала о том, что все покупки доначислены игроку. Так для каждой одноразовой покупки.

Обновляем интерфейс и можем играть.

Рассмотрим функции немного подробнее:

Проверяем приобретена ли покупка и запускаем активацию функционала. Функция активация та же, что и во время покупки.

Простой вариант​

Рассмотрим доначисление одноразовых покупок.

Если у нас в наличии одноразовая покупка, то начисляем, ожидаем и сообщаем о завершении. Иначе только сообщаем.

Продвинутый вариант​

Следующий вариант отличается тем, что после начисления бонусов мы запускаем эту же функцию еще раз. Процесс происходит циклично до тех пор, пока условие наличия покупка не будет ложным.

Тестирование доначислений​

В консоли игрока вы можете назначить игроку (себе) несколько одноразовых покупок и запустить игру.

После запуска у вас должно быть следующее:

Дополнительно​

В исходнике вы можете посмотреть на обе реализации, а также дополнительный функционал:

  • Обновления интерфейса
  • Обновления магазина
  • Переключение режимов проведения покупки

Автор: @aventy

Оставайтесь на связи​

С другими разделами документации вы можете ознакомиться здесь. Для начала работы вы можете ознакомиться с нашими туториалами.

Сообщество GamePush в Telegram: @gs_community.

Для ваших обращений e-mail: official@gamepush.com

Желаем вам успехов!