{{indexmenu_n>40}}
====== Платный контент (Paywall) ======
В игре можно продавать доступ к отдельному уровню, подсказке или любому куску текста задания. Схема такая: автор заводит **товар**, ставит в задание кнопку оплаты, а показ платного содержимого закрывает [[authors_main:task_editor:advanced:edit_templates|шаблоном]], который проверяет, оплачен товар или нет.
> **Перед началом:** платёжная система включается администратором домена, а не автором игры. Если на домене оплата не настроена, кнопка оплаты просто не появится на странице. Тестировать пейволл при этом можно и без настроенной оплаты — см. раздел «Как это протестировать».
===== 1. Завести товар =====
В редакторе игры откройте **«Товары / Платные доступы (Paywall)»**. На экране товаров задаются четыре поля:
* **Ключ** — идентификатор товара, по которому вы будете обращаться к нему из задания. Только английские буквы, цифры и подчёркивание: ключ с дефисом, пробелом или кириллицей сохранится, но кнопка оплаты его не найдёт. **Ключ нельзя изменить после создания** — можно только удалить товар и завести заново.
* **Название** — уходит в платёжную систему как описание счёта. Игроку на кнопке не показывается.
* **Цена** — должна быть больше нуля.
* **Валюта** — UAH, USD, EUR, GBP, CAD, PLN, CZK.
Товаров в игре может быть сколько угодно: например, отдельный товар на каждый платный уровень.
===== 2. Поставить кнопку оплаты =====
В том месте задания, где должна появиться кнопка, напишите:
%pay_button ключ_товара%
Движок заменит это на кнопку **«Оплатить {цена} {валюта}»**. По нажатию открывается отдельное окно платёжной системы.
Что важно знать про кнопку:
* Если товар уже куплен, кнопка **исчезает сама** — её не нужно прятать вручную.
* Если ключ написан с ошибкой и такого товара нет, вместо кнопки появится серая надпись «Товар не найден» с этим ключом. Удобно для самопроверки.
* Кнопку можно ставить в тексте задания, в подсказках, в бонусах и в тексте финиша — везде, где работают подстановки. В том числе **внутри шаблона**: шаблоны вычисляются раньше, поэтому кнопка спокойно живёт в ветке ''{%= no}''.
===== 3. Закрыть платное содержимое =====
Сама по себе кнопка ничего не прячет — платный текст надо закрыть шаблоном ''product_КЛЮЧ''. У него три значения:
* **''yes''** — товар куплен, доступ есть.
* **''pending''** — оплата начата, но банк ещё не подтвердил её. Встречается редко, но ветку лучше предусмотреть.
* **''no''** — не оплачено.
{% match product_level_5 }:{
{%= yes}:{
Спасибо за покупку! Код для прохождения уровня: ЗООПАРК
%}
{%= pending}:{
Ваш платёж обрабатывается банком. Подождите немного и обновите страницу.
%}
{%= no}:{
Этот уровень содержит платный контент.
%pay_button level_5%
%}
%}
Шаблон вычисляется на сервере, поэтому неоплаченное содержимое не попадает в исходный код страницы — подсмотреть его нельзя.
> Если в имени товара опечатка, шаблон не ругается, а просто всегда возвращает ''no''. Проверяйте ключ по кнопке: она в этом случае покажет «Товар не найден».
===== Что происходит после оплаты =====
Когда игрок завершает оплату, окно платёжной системы закрывается само и страница игры перезагружается — платное содержимое появляется без каких-либо действий игрока.
Доступ выдаётся **на команду**, а не на игрока: заплатил один — открылось всем. В одиночных играх это, естественно, тот же самый игрок.
Список покупок по игре виден автору на экране покупок игры — там же видны и незавершённые попытки оплаты. Оттуда же доступ можно выдать вручную: это удобно, если игрок рассчитался с вами другим способом, или если оплата зависла и её нужно закрыть руками.
===== Как это протестировать =====
Заходите в игру через **«Тестировать Игру»**. Для тестовой команды движок сам подменяет платёжную систему на тестовую, независимо от того, что настроено на домене и настроено ли вообще. Кнопка оплаты работает как настоящая, но вместо банка открывается форма с полем для кода — нужный код написан прямо в этой форме. Реальные деньги не списываются.
Так можно проверить всю цепочку целиком: и ветку ''no'' с кнопкой, и переход к ветке ''yes'' после «оплаты».
===== Не путать с платным входом в игру =====
Здесь описана продажа контента **внутри** игры. Плата за **участие** в игре — это отдельный механизм: цена задаётся в настройках игры, а команды после оплаты принимаются в игру автоматически. См. [[authors_main:game_management:game_settings|Настройки игры]].
[[https://qeng.org/game.php?jump_to&gid=3493&task_id=81984|Пример в игре]]