{{indexmenu_n>40}} ====== Платний контент (Paywall) ====== У грі можна продавати доступ до окремого рівня, підказки або будь-якого шматка тексту завдання. Схема така: автор заводить **товар**, ставить у завдання кнопку оплати, а показ платного вмісту закриває [[ua: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'' після «оплати». ===== Не плутати з платним входом у гру ===== Тут описано продаж контенту **всередині** гри. Плата за **участь** у грі — це окремий механізм: ціна задається в налаштуваннях гри, а команди після оплати приймаються у гру автоматично. Див. [[ua:authors_main:game_management:game_settings|Налаштування гри]]. [[https://qeng.org/game.php?jump_to&gid=3493&task_id=81984|Приклад у грі]]