Service of automatic issuance of purchased digital codes
Рекомендуемая ОС для сервера - 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
!)
- Зайдите на сервер и выполните команду:
sudo apt install git && source <(git clone https://gist.github.com/0bb9127090d597d1d0c72beb0d45815c.git digi-tmp && cat ./digi-tmp/install.sh)
- Дождитесь установки всех зависимостей, это может занять какое-то время
- Под конец установки, заполните личные данные, необходимые для работы сервиса с digiseller API и БД (см.
Requirements
) - Чтобы проверить, что сервис запустился и работает, откройте в браузере
http://<ip>:8080/ping
- Если вы ошиблись с настройкой на шаге 3 или хотите обновить настройки, то выполните команду
bash ./repair.sh
в директории сервиса (./digi-express
) - Введите новые данные (см.
Requirements
) - ВНИМАНИЕ, команда
./repair.sh
удаляет текущую БД и создает её заного! Сделайте бекап данных, если это не первоначальная настройка - Проверьте, что все работает:
http://<ip>:8080/ping
Чтобы обновить или перезапустить сервис, выполните команду bash ./update.sh
в директории сервиса (./digi-express
).
Автоматически будет загружена новая версия сервиса, если такая имеется.
URL обработчика покупок http://<ip>:8080/callback
, его нужно привязать к товару в настройках в digiseller.
Веб интерфейс базы данных доступен на :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
- идентификатор товара в digisellercode
- цифровой код для автоматической выдачи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
),
при покупке на одной из платформ, все записи выданного кода для других платформ удалятся автоматически.
Стандартные 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
, чтобы изменения подтянулись.
Если у вас имеется собственный сайт с доменом и ssl шифрованием (https, вместо http), то настоятельно рекомендуется на сервере с сайтом настроить proxypass
на этот сервис, чтобы не отправлять покупателей на голый айпишник этого сервиса. То есть:
https://my-super-shop.ru/digi/callback => http://<ip>:8080/callback
Не забудьте при этом обновить урл коллбэка в настройках товара в Digiseller.