Skip to content

Service of automatic issuance of purchased digital codes

Notifications You must be signed in to change notification settings

mispon/digiseller-express

Repository files navigation

digiseller-express

Service of automatic issuance of purchased digital codes

Requirements

Рекомендуемая ОС для сервера - Ubuntu 18.04|20.04|22.04

Перед установкой, подготовьте данные:

  • SELLER_ID - ваш уникальный идентификатор продавца в digiseller, можно найти в ЛК
  • SELLER_API_KEY - создается тут. Сам ключ пришлют в чат в WebMoney
  • PG_USER - логин в БД, обязательно буквами в нижнем регистре, например superseller
  • PG_PASS - пароль в БД, требование как к любому паролю, например SuPer!_Secret123
  • TG_USER - ваш никнейм в телеграм, без @, просто pupa (не @pupa!)

Setup

  1. Зайдите на сервер и выполните команду:
    sudo apt install git && source <(git clone https://gist.github.com/0bb9127090d597d1d0c72beb0d45815c.git digi-tmp && cat ./digi-tmp/install.sh)
  2. Дождитесь установки всех зависимостей, это может занять какое-то время
  3. Под конец установки, заполните личные данные, необходимые для работы сервиса с digiseller API и БД (см. Requirements)
  4. Чтобы проверить, что сервис запустился и работает, откройте в браузере
    http://<ip>:8080/ping
    

Update / Fix Config

  1. Если вы ошиблись с настройкой на шаге 3 или хотите обновить настройки, то выполните команду bash ./repair.sh в директории сервиса (./digi-express)
  2. Введите новые данные (см. Requirements)
  3. ВНИМАНИЕ, команда ./repair.sh удаляет текущую БД и создает её заного! Сделайте бекап данных, если это не первоначальная настройка
  4. Проверьте, что все работает:
    http://<ip>:8080/ping
    

Update / Restart Service

Чтобы обновить или перезапустить сервис, выполните команду bash ./update.sh в директории сервиса (./digi-express). Автоматически будет загружена новая версия сервиса, если такая имеется.

Callback

URL обработчика покупок http://<ip>:8080/callback, его нужно привязать к товару в настройках в digiseller.

Database

Веб интерфейс базы данных доступен на :8082 порту.
Откройте http://<ip>:8082 в браузере. В окне логина введите следующие значения:

System: PostgreSQL
Username: PG_USER из .env файла
Password: PG_PASS из .env файла
Database: digi

В схеме pulic вы увидете две пустые таблицы: codes (активные товары) и issued_codes (выданные коды). Коды оплаты автоматически записываются в таблицу issued_codes во время получения покупателем, вместе с его почтой, uniq кодом и временем получения.
Таблица codes состоит из трех полей:

  • id_goods - идентификатор товара в digiseller
  • code - цифровой код для автоматической выдачи
  • price - цена кода (начальная цена товара + модификатор, RUB)

Пример SQL запроса, для массового добавление кодов:

INSERT INTO
  codes (id_goods, code, price)
VALUES
  (1, 'code1', 100),
  (2, 'code2', 200),
  (3, 'code3', 300),
  (4, 'code4', 400),
  (5, 'code5', 500);

Можно добавлять одинаковые code для разных платформ (с разными id_goods), при покупке на одной из платформ, все записи выданного кода для других платформ удалятся автоматически.

Custom HTML Pages

Стандартные HTML странички можно заменить на свои. Для этого в папку ./digi-express/html/ нужно добавить один или оба файла:

  • index.tmpl - страница выдачи кодов
  • error.tmpl - страница отображения ошибок

Обратите внимание на формат файла: не .html, а .tmpl!

Если заменить только один из них, то другой останется стандартным, но приоритет именно у ваших файлов. По своей структуре - это обычные HTML файлы, которые верстаются точно также. Разница в том, что в них пробрасываются параметры от сервиса и подставляются в определенные плейсхолдеры, например:

<body>
   <div class="header">
      <p>🤬 Произошла ошибка 😰</p>
   </div>
   <div class="error">
      <p>{{ .message }}</p>
   </div>
</body>

где {{ .message }} - это плейсхолдер, в котором message - это параметр с сообщением об ошибке, который прилетает из сервиса.

Список параметров:

index.tmpl
    code     - код, который получает покупатель после оплаты
    sellerId - ваш идентификатор продавца, для кнопки "Чат с продавцом"
    tgUser   - ваш никнейм в телеграм
error.tmpl
    message  - сообщение об ошибке
    sellerId - ваш идентификатор продавца, для кнопки "Чат с продавцом"
    tgUser   - ваш никнейм в телеграм

После добавления / редактирования файлов, необходимо перезапустить сервис командой bash ./update.sh, чтобы изменения подтянулись.

Epilogue

Если у вас имеется собственный сайт с доменом и ssl шифрованием (https, вместо http), то настоятельно рекомендуется на сервере с сайтом настроить proxypass на этот сервис, чтобы не отправлять покупателей на голый айпишник этого сервиса. То есть:

https://my-super-shop.ru/digi/callback => http://<ip>:8080/callback

Не забудьте при этом обновить урл коллбэка в настройках товара в Digiseller.

About

Service of automatic issuance of purchased digital codes

Resources

Stars

Watchers

Forks

Packages

No packages published