{{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|Пример в игре]]