Интеграция Prodamus XL ↔ Lava.top

Интеграция позволяет принимать зарубежные платежи через Lava.top и автоматически записывать успешную оплату в заказ Prodamus XL.

Покупатель заполняет форму на странице Prodamus XL, после чего интеграция:

  1. создаёт заказ в Prodamus XL;
  2. получает его внутренний идентификатор;
  3. рассчитывает сумму в EUR или USD;
  4. создаёт страницу оплаты в Lava.top;
  5. перенаправляет покупателя на оплату;
  6. после успешного платежа добавляет оплату в соответствующий заказ Prodamus XL.

Интеграция доступна пользователям FOXSKILLS с полным доступом. В 24-часовой демоверсии мастер установки недоступен.

Варианты размещения

При создании установки нужно выбрать, где будет работать интеграция.

Cloudflare Worker

Для кого подходит: Самый быстрый и простой запуск

Адрес оплаты: *.workers.dev

Хранилище: Cloudflare D1

Cloudflare Pages

Для кого подходит: Production-размещение на своём субдомене

Адрес оплаты: Например, lava.example.com

Хранилище: Cloudflare D1

Свой сервер

Для кого подходит: Если требуется полный контроль над размещением

Адрес оплаты: Собственный HTTPS-домен

Хранилище: Отдельная SQLite

n8n

Для кого подходит: Если интеграцию нужно разместить внутри своего n8n

Адрес оплаты: Уникальные webhook-адреса n8n

Хранилище: Отдельная Data Table

Изменить тип уже созданной установки с одного варианта на другой нельзя. Для другого способа размещения нужно создать новую установку.

Что потребуется до начала установки

Для любого варианта подготовьте:

  • API-ключ Prodamus XL;
  • API-ключ Lava.top;
  • продукт Lava.top с включённой настройкой «Цена по запросу через API»;
  • доступ к настройкам платежных интеграций Prodamus XL;
  • доступ к настройкам webhook в Lava.top.

Дополнительные требования зависят от выбранного варианта размещения.

Для Cloudflare Worker

Потребуются:

  • аккаунт Cloudflare;
  • Cloudflare Account ID;
  • API Token с правами:
    • Account → Workers Scripts → Edit;
    • Account → D1 → Edit.

Для Cloudflare Pages

Потребуются:

  • аккаунт Cloudflare;
  • Cloudflare Account ID;
  • API Token с правами:
    • Account → Cloudflare Pages → Edit;
    • Account → D1 → Edit;
  • собственный субдомен, например lava.example.com;
  • доступ к DNS-записям домена.

Основной домен и его DNS-серверы переносить в Cloudflare не требуется.

Для своего сервера

Потребуются:

  • Linux VPS;
  • Docker Engine;
  • Docker Compose v2;
  • доступ к серверу через root или sudo;
  • собственный субдомен;
  • возможность создать DNS-запись;
  • открытые входящие порты 80 и 443 для автоматического HTTPS.

Мастер не запрашивает SSH-пароль, не подключается к VPS самостоятельно, не устанавливает Docker и не меняет firewall.

Для n8n

Потребуются:

  • публичный HTTPS-адрес n8n;
  • n8n версии 2.32.1 или новее;
  • включённый Public API;
  • API key n8n с правами на:
    • workflows;
    • credentials;
    • Data Tables;
  • доступный встроенный узел Data Table.

Мастер создаёт отдельные ресурсы и не изменяет существующие пользовательские workflows.

Подготовка Lava.top

Перед запуском мастера создайте в Lava.top продукт, который будет использоваться для зарубежной оплаты.

Подойдёт цифровой продукт, курс или консультация.

В настройках продукта:

  1. сделайте продукт скрытым;
  2. включите «Цена по запросу через API»;
  3. добавьте предложение с валютой EUR или USD;
  4. сохраните продукт;
  5. создайте API-ключ Lava.top.

Фиксированную стоимость указывать не нужно. Сумма будет рассчитываться интеграцией на основании стоимости заказа Prodamus XL.

Если мастер не находит продукт, проверьте:

  • включена ли цена по запросу через API;
  • является ли продукт скрытым;
  • есть ли у предложения EUR или USD;
  • относится ли API-ключ к нужному аккаунту Lava.top.

Общий порядок установки

1

Создайте установку

Откройте мастер интеграции и нажмите «Новая установка».

Укажите:

  • понятное название школы;
  • место размещения интеграции:
    • Cloudflare;
    • свой сервер;
    • n8n.

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

2

Подключите Prodamus XL

Введите ключ доступа API Prodamus XL и нажмите «Проверить и продолжить».

Мастер проверит доступ к API заказов.

API-ключ:

  • не записывается в историю установки;
  • не сохраняется в PostgreSQL FOXSKILLS;
  • хранится только в памяти открытой вкладки.

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

3

Подключите Lava.top

Введите API-ключ Lava.top.

Мастер найдёт скрытые продукты, у которых включена цена по запросу через API. Выберите продукт, через который будут создаваться счета.

Идентификаторы продукта и предложения мастер определит автоматически. Копировать offerId вручную не требуется.

4

Настройте оплату

В текущей версии исходной валютой заказа является RUB.

Выберите:

  • валюту оплаты — EUR или USD;
  • источник курса:
    • курс ЦБ РФ;
    • ручной курс;
  • наценку к курсу от 0 до 20%;
  • время повторного использования счёта от 0 до 180 минут.

Значение 30 минут означает, что повторное нажатие на оплату в течение этого времени откроет уже созданный неоплаченный счёт. Значение 0 создаёт новый счёт при каждом обращении.

Проверка настроек не создаёт реальный счёт и не списывает деньги.

Установка через Cloudflare Worker

Выберите Cloudflare, а затем режим Worker.

Укажите:

  • Cloudflare Account ID;
  • Cloudflare API Token;
  • имя Worker.

Можно оставить имя, которое предложил мастер.

После проверки Cloudflare мастер:

  1. создаст отдельную базу D1;
  2. применит структуру таблиц;
  3. загрузит payment runtime;
  4. подключит D1 к Worker;
  5. сохранит необходимые переменные и секреты;
  6. включит адрес *.workers.dev;
  7. проверит маршрут /health.

На финальном шаге выберите существующую платежную интеграцию Lava.top в Prodamus XL или нажмите «Создать Lava.top автоматически».

После завершения появится рабочий адрес вида:

https://xl-lavatop-example.workers.dev

Worker подходит для быстрого запуска и не требует подключения собственного домена.

Установка через Cloudflare Pages и свой субдомен

Выберите Cloudflare, а затем «Pages + свой субдомен».

Укажите:

  • Cloudflare Account ID;
  • API Token;
  • имя Pages project;
  • субдомен, например lava.example.com.

После подтверждения мастер:

  1. создаст D1;
  2. применит структуру таблиц;
  3. создаст Pages project;
  4. подключит D1 как binding DB;
  5. установит переменные и секреты;
  6. загрузит payment runtime как _worker.js;
  7. проверит адрес *.pages.dev;
  8. зарегистрирует пользовательский субдомен;
  9. покажет DNS-запись CNAME.

В панели управления DNS создайте запись, которую показывает мастер. Например:

Тип: CNAME Имя: lava Значение: xl-lavatop-example.pages.dev

В некоторых DNS-панелях в поле имени нужно указывать только lava, а не полный адрес lava.example.com.

После добавления записи вернитесь в мастер и нажмите «Проверить домен и /health».

Распространение DNS и выпуск сертификата могут занять несколько минут. Основной домен переносить в Cloudflare не нужно.

Важно: если переменные Pages были добавлены или изменены вручную уже после первой загрузки, создайте новый production deployment. Переменные должны попасть именно в окружение активного развёртывания.

Установка на свой сервер

Требования

Сервер должен иметь:

  • Linux на архитектуре AMD64 или ARM64;
  • Docker Engine;
  • Docker Compose v2;
  • исходящий доступ в интернет;
  • доступ через root или sudo.

Порядок установки

1

Укажите домен

Введите субдомен, например:

lava.example.com

Создайте для него A-запись на публичный IPv4 сервера. При использовании IPv6 можно дополнительно создать AAAA-запись.

2

Запустите диагностику VPS

Мастер создаст одноразовую команду.

Команду нужно выполнить в терминале самого VPS, а не в браузере на странице FOXSKILLS.

Проще всего открыть в панели хостинга раздел «Консоль», «Web console», «VNC» или «Shell».

Также можно подключиться по SSH:

ssh root@IP_АДРЕС_СЕРВЕРА

Вставьте команду из мастера и нажмите Enter. Не закрывайте терминал: после диагностики процесс будет ожидать разрешения на установку.

Диагностика проверяет:

  • операционную систему;
  • архитектуру;
  • Docker и Compose;
  • свободное место;
  • занятость портов;
  • наличие reverse proxy;
  • свободный локальный порт.

На этом этапе сервер не изменяется.

3

Выберите подключение HTTPS

Если сервер чистый и порты 80/443 свободны, мастер предложит автоматический HTTPS через отдельный контейнер Caddy. Это рекомендуемый вариант.

Если на сервере уже работает Nginx, панель управления, Caddy, Apache или Traefik, мастер не будет перезаписывать их настройки. Он установит приложение на локальный адрес вида:

http://127.0.0.1:18740

Этот адрес нужно добавить в существующий reverse proxy.

4

Разрешите установку

Выберите или автоматически создайте платежную интеграцию Lava.top в Prodamus XL и нажмите «Разрешить установку».

Вернитесь в терминал и дождитесь сообщения:

FOXSKILLS payment runtime is running

После этого нажмите в мастере «Проверить установку на сервере».

5

Проверьте домен

Должен открываться адрес:

https://lava.example.com/health

Если локальная проверка проходит, а домен недоступен, проверьте:

  • A-запись домена;
  • открыты ли порты 80 и 443;
  • настроен ли reverse proxy;
  • выпущен ли SSL-сертификат;
  • не включена ли блокировка портов у VPS-провайдера.

Интеграция устанавливается в отдельный каталог:

/opt/foxskills/xl-lavatop/<ID-установки>

Она использует отдельные Docker-контейнеры и отдельную SQLite, не подключаясь к базам других проектов.

Установка в n8n

Выберите вариант n8n и пройдите общие шаги Prodamus XL, Lava.top и настроек оплаты.

Затем укажите:

  • публичный HTTPS-адрес n8n;
  • API key n8n;
  • платежную интеграцию Lava.top в Prodamus XL.

Мастер создаст:

  • один отдельный workflow с префиксом [FOXSKILLS];
  • одну отдельную Data Table;
  • три отдельных credentials;
  • уникальные маршруты /health, /bridge.js, /pay и /lava-webhook.

Существующие workflows не переименовываются, не отключаются и не изменяются.

Если появляется ошибка Unrecognized node type: n8n-nodes-base.dataTable, обновите n8n до версии 2.32.1 или новее и убедитесь, что встроенный узел Data Table не отключён.

В текущей версии автоматическое обновление workflow n8n не выполняется. Диагностика и удаление работают только с ресурсами конкретной установки.

Финальная настройка Lava.top

После установки мастер покажет URL webhook, например:

https://lava.example.com/lava-webhook

В Lava.top создайте webhook и:

  1. вставьте URL из мастера;
  2. выберите события:
    • «Успешная оплата»;
    • «Неуспешная оплата»;
  3. укажите показанный мастером X-Api-Key;
  4. сохраните webhook.

X-Api-Key показывается при установке. Сохраните его сразу.

При успешной оплате интеграция добавит в заказ Prodamus XL успешный платёж через выбранную платежную интеграцию. Неуспешная попытка не отмечает заказ как оплаченный.

Если Cloudflare-ключ webhook был потерян, в карточке установки можно создать новый. После замены обязательно обновите X-Api-Key в настройках webhook Lava.top.

Подключение формы Prodamus XL

На финальном экране мастер покажет готовый код:

<script src="https://ВАШ-ДОМЕН/bridge.js"></script>

Добавьте его в HTML-блок страницы, на которой находится форма Prodamus XL.

Для кнопки оплаты укажите JavaScript-действие:

LavaPay.start();

После нажатия кнопки скрипт:

  1. проверит форму;
  2. создаст заказ Prodamus XL;
  3. получит ID заказа;
  4. откроет оплату через Lava.top.

Если форма открывается во всплывающем окне или iframe, используйте актуальный bridge.js. В версии 1.0.6 и новее оплата открывается на всей странице, а не внутри виджета. Для страниц с жёстко ограниченным iframe подключите тот же bridge.js также на основной странице.

Ссылка на оплату заказа

Для рассылок, сообщений, кнопок и автоматизаций используйте шаблон:

https://ВАШ-ДОМЕН/pay?orderId=

Например:

https://lava.example.com/pay?orderId=

Prodamus XL заменит на внутренний идентификатор конкретного заказа.

Передавать сумму, email или другие данные в ссылке не требуется. Интеграция самостоятельно получает сведения о заказе через API Prodamus XL.

Проверка после установки

Проверка /health

Откройте:

https://ВАШ-ДОМЕН/health

Рабочая интеграция вернёт ответ с "ok": true.

Проверка без реальной оплаты

Для Worker, Pages и своего сервера доступна кнопка «Проверить интеграцию без оплаты».

Проверка:

  • находит или создаёт тестовый счёт;
  • эмулирует событие payment.success;
  • проверяет добавление оплаты в Prodamus XL.

Деньги при этом не списываются.

Важно: тест действительно добавляет успешный платёж в указанный заказ Prodamus XL. Используйте только тестовый заказ.

Эта проверка не подтверждает работу банковского эквайринга Lava.top и реальную доставку webhook со стороны Lava.top.

Диагностика

В карточке готовой установки доступна «Диагностика инфраструктуры».

Быстрая диагностика проверяет:

  • HTTPS;
  • /health;
  • bridge.js;
  • маршрут /pay.

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

  • для Cloudflare можно проверить Worker или Pages, D1 и основные таблицы;
  • для своего сервера можно создать одноразовую команду проверки Docker, Caddy, SQLite, свободного места и локального /health;
  • для n8n можно проверить состояние конкретного workflow.

Диагностика не изменяет настройки и не выполняет реальный платёж.

Обновление интеграции

Когда доступна новая версия, в карточке установки появляется кнопка «Обновить интеграцию».

При обновлении сохраняются:

  • домен;
  • настройки оплаты;
  • платежная база;
  • история счетов;
  • секреты runtime.

Для Cloudflare потребуется повторно ввести API Token.

Для своего сервера мастер выдаст одноразовую команду, которую нужно выполнить на том же VPS. Перед обновлением создаётся локальная резервная копия. При ошибке предыдущая версия восстанавливается автоматически.

Удаление интеграции

В карточке установки доступны два режима.

Удалить приложение, сохранить данные

Удаляется runtime и его секреты, но база платежей остаётся:

  • D1 — для Cloudflare;
  • SQLite — для своего сервера;
  • Data Table — для n8n.

После этого установку можно развернуть повторно.

Полностью стереть установку

Удаляются:

  • приложение;
  • секреты;
  • платежная база;
  • запись установки в FOXSKILLS.

Операцию нельзя отменить.

Для Cloudflare потребуется API Token, для n8n — API key. Для своего сервера мастер выдаст одноразовую команду, которую нужно выполнить на VPS.

После удаления может потребоваться вручную удалить старую DNS-запись или маршрут из внешней панели reverse proxy.

Безопасность ключей

FOXSKILLS не сохраняет:

  • API-ключ Prodamus XL;
  • API-ключ Lava.top;
  • Cloudflare API Token;
  • API key n8n;
  • Webhook X-Api-Key.

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

Не обновляйте страницу посреди установки: секретные значения будут удалены из памяти, и соответствующие проверки потребуется пройти повторно.

Для Cloudflare и n8n рекомендуется использовать отдельные API-ключи с минимально необходимыми правами. После установки ключ можно отозвать. Для диагностики, обновления или удаления позже потребуется снова предоставить действующий ключ.