Table of Contents

Платный контент (Paywall)

В игре можно продавать доступ к отдельному уровню, подсказке или любому куску текста задания. Схема такая: автор заводит товар, ставит в задание кнопку оплаты, а показ платного содержимого закрывает шаблоном, который проверяет, оплачен товар или нет.

Перед началом: платёжная система включается администратором домена, а не автором игры. Если на домене оплата не настроена, кнопка оплаты просто не появится на странице. Тестировать пейволл при этом можно и без настроенной оплаты — см. раздел «Как это протестировать».

1. Завести товар

В редакторе игры, во вкладке «Полезные ссылки», откройте «Товары / Платные доступы (Paywall)». На экране товаров задаются четыре поля:

Товары игры: ключ, название, цена и валюта

Товаров в игре может быть сколько угодно: например, отдельный товар на каждый платный уровень.

Писать шаблон с нуля не обязательно: в колонке «Шаблон» кнопка «Копировать» кладёт в буфер готовый кусок с ключом этого товара, а под таблицей лежит тот же пример с пояснением.

2. Поставить кнопку оплаты

В том месте задания, где должна появиться кнопка, напишите:

%pay_button ключ_товара%

Движок заменит это на кнопку «Оплатить {цена} {валюта}». По нажатию открывается отдельное окно платёжной системы.

Что важно знать про кнопку:

3. Закрыть платное содержимое

Сама по себе кнопка ничего не прячет — платный текст надо закрыть шаблоном product_КЛЮЧ. У него три значения:

{% match product_level_5 }:{
  {%= yes}:{
Спасибо за покупку! Код для прохождения уровня: ЗООПАРК
  %}
  {%= pending}:{
Ваш платёж обрабатывается банком. Подождите немного и обновите страницу.
  %}
  {%= no}:{
Этот уровень содержит платный контент.
%pay_button level_5%
  %}
%}

Вот как это выглядит у игрока, пока не оплачено: текста нет, вместо него кнопка.

Ветка «не оплачено»: текст закрыт шаблоном, вместо него кнопка оплаты

Шаблон вычисляется на сервере, поэтому неоплаченное содержимое не попадает в исходный код страницы — подсмотреть его нельзя.

Если в имени товара опечатка, шаблон не ругается, а просто всегда возвращает no. Проверяйте ключ по кнопке: она в этом случае покажет «Товар не найден».

Что происходит после оплаты

Когда игрок завершает оплату, окно платёжной системы закрывается само и страница игры перезагружается — платное содержимое появляется без каких-либо действий игрока.

Тот же уровень после оплаты: сработала ветка «yes», и кнопка оплаты пропала сама

Доступ выдаётся на команду, а не на игрока: заплатил один — открылось всем. В одиночных играх это, естественно, тот же самый игрок.

Список покупок по игре виден автору на экране покупок игры — там же видны и незавершённые попытки оплаты. Оттуда же доступ можно выдать вручную: это удобно, если игрок рассчитался с вами другим способом, или если оплата зависла и её нужно закрыть руками.

Покупки по игре: кто и что купил, что ждёт оплаты и выдача доступа вручную

Как это протестировать

Заходите в игру через «Тестировать Игру». Для тестовой команды движок сам подменяет платёжную систему на тестовую, независимо от того, что настроено на домене и настроено ли вообще. Кнопка оплаты работает как настоящая, но вместо банка открывается форма с полем для кода — нужный код написан прямо в этой форме. Реальные деньги не списываются.

Тестовая оплата: для тестовой команды движок подменяет платёжную систему, код написан в самой форме

Так можно проверить всю цепочку целиком: и ветку no с кнопкой, и переход к ветке yes после «оплаты».

Оплата целиком: кнопка, форма, код подтверждения — и уровень открывается веткой yes

Не путать с платным входом в игру

Здесь описана продажа контента внутри игры. Плата за участие в игре — это отдельный механизм: цена задаётся в настройках игры, а команды после оплаты принимаются в игру автоматически. См. Настройки игры.

Пример в игре