Начиная с версии 1.27.4 появилась возможность оплачивать тарифные планы используя платежный шлюз Ростелеком.
Получение учетных данных от Ростелеком.
Для получения учетных данных необходимо зарегистрировать свою систему-клиент SoftWLC, оставив заявку на сайте Ростелекома.
Параметры, получаемые при регистрации системы-клиента:
- URL для взаимодействий пользователя;
- Идентификатор системы клиента;
- Клиентский сертификат и ключ;
- Пространство имен;
- Идентификатор услуги.
Настройки конфигурационного файла NGINX
Необходимо создать диреторию /etc/nginx/certs для хранения сертификатов и поместить ваш ssl-сертификат и ключ в созданную директорию.
Редактируем файл /etc/nginx/conf.d/softwlc.conf следующим образом, добавляем настройки SSL:
server { listen 8080; listen [::]:8080; # SSL configuration listen 18443 ssl; listen [::]:18443 ssl; server_name ДОМЕННОЕ ИМЯ ssl_certificate /etc/nginx/certs/СЕРВЕРНЫЙ СЕРТИФИКАТ; ssl_certificate_key /etc/nginx/certs/КЛЮЧ СЕРВЕРНОГО СЕРТИФИКАТА;
При настройке выше проверка клиентского сертификата не происходит, если проверка клиентского сертификата необходима(для этого понадобится CA, который выдал клиентский сертификат), то дополняем блок конфигурации следующими строчками:
ssl_client_certificate /etc/nginx/certs/Файл клиентского CA; ssl_verify_client optional;
И ниже добавляем настройку location, чтобы валидация работала только для определенного пути и NGINX возвращал 403 если валидация не пройдена:
location /eltex_portal/confirmPayment { if ($ssl_client_verify != SUCCESS) { return 403; } proxy_pass http://127.0.0.1:9000; }
Создание тарифа в ЛК
Переходим в Личный кабинет SoftWLC - раздел "Сервисы и тарифы", вкладка "Тарифы", нажимаем кнопку Добавить
Создаем новый тариф (например, rtk_gateway), обязательно указывая пункт "Портальная авторизация" и стоимость тарифа. Нажимаем на кнопку "Сохранить".
Настройка конструктора порталов
Создаем из полученного при регистрации клиентского сертификата и ключа контейнер pkcs12, указываем пароль произвольно (пароль запоминаем):
sudo openssl pkcs12 -export -in <КЛИЕНТСКИЙ СЕРТИФИКАТ> -inkey <КЛИЕНТСКИЙ КЛЮЧ> -out <НАЗВАНИЕ КОНТЕЙНЕРА>.pfx
В Конструкторе порталов в меню "Системные Настройки" - "Платежные сервисы" - "Ростелеком" заполняем поля, полученные при регистрации Системы-клиента:
- URL для взаимодействий пользователя
- Идентификатор клиента
Загружаем контейнер, созданный в п.1, вводим пароль от него и нажимаем кнопку "Сохранить"
Создаем портал (например, rostelecom-test), нажав на кнопку "Создать новый портал", указав его название и домен
В меню портала "Сервисы оплаты" выбираем платежный шлюз "Ростелеком", заполняем параметры, полученные при регистрации Системы-клиента:
- Пространство имен
- Идентификатор услуги
Во вкладке "Тарифы" выбираем ранее созданный тариф "rtk_gateway". Нажимаем на кнопку "Сохранить".
Импорт сертификатов в Java
Необходимо настроить хранилище сертификатов java, так как Платежный шлюз использует самоподписанные сертификаты для работы. В том числе и серверный, который изначально не является доверенным. Чтобы java доверяла сертификату необходимо сертификат СА добавить в хранилище java.
При работе в deb:
Добавляем сертификат в хранилище java.
keytool -importcert -file ca.crt -alias "RTK_CA" -keystore /etc/ssl/certs/java/cacerts
- Перезагружаем eltex-portal
При работе в docker:
Скопировать хранилище из контейнера eltex-portal
sudo docker cp portal:/etc/ssl/certs/java/cacerts cacerts
- Добавить в cacerts СА сертификат как это показано для deb
- Примонтировать в контейнер файл хранилища с установленным СА вместо оригинального
- Перезапустить контейнер
Настройка белых списков APB
Для корректной работы необходимо добавить шаблоны адресов платежного шлюза и систем эквайринга, актуальные для вашей системы в белые списки на АПБ (файл /etc/eltex-apb/hosts.json). Списки необходимо получить при регистрации системы-клиента.
Пример:
[ { "permitted-ip-list": [ "rt.ru" ] } ]
Настройка SSID
Открываем EMS и переходим на вкладку "Wireless" - "Менеджер SSID" - "База SSID". Нажимаем на кнопку "Добавить SSID", создаем SSID с портальной авторизацией, указываем портал, созданный ранее (rostelecom-test)
Выполняем привязку SSID к тестовым ТД
Мониторинг
Для мониторинга сервиса APB поддержаны совместимые с Prometheus метрики. Для просмотра списка метрик надо открыть в браузере:
http://<адрес сервера Eltex-portal>:9000/eltex_portal/api/metrics
Добавлены следующие метрики:
- rostelecom_payment_gw_request - Счетчик успешных/упавших запросов при выборе платного тарифа
- rostelecom_payment_gw_redirect_back_clients - Счетчик клиентов, редиректнутых из платежного шлюза обратно на портал
- rostelecom_payment_gw_status - Счетчик запросов статуса платежа у платежного шлюза по каждому статусу
- rostelecom_payment_gw_confirmed_status - Счетчик подтвержденных платежей по каждому статусу
- rostelecom_payment_gw_rest_template_total - Счетчик запросов статуса платежа с тэгом HTTP-статуса ответа
- rostelecom_payment_gw_rest_template_seconds - 0.25, 0.5, 0.75, 0.95, 0.99 квантили времени запроса статуса платежа за последние 5 минут
- rostelecom_payment_gw_rest_template_seconds_count - Счетчик количества запросов статуса платежа с тэгом HTTP-метода запроса
- rostelecom_payment_gw_rest_template_seconds_sum - Счетчик суммы времени запросов статуса платежа
- rostelecom_payment_gw_rest_template_seconds_max - Плавающий счетчик максимального времени запроса статуса платежа за последние 5 минут.