Интеграция с платежной системой с использованием модуля Card
Материал из BiTel WiKi
Задача интеграции биллинга с платежной системой решена созданием шлюза посредством nginx.
Цель создания такого фильтра-шлюза: убрать ненужные платежной системе подробности дилерского интерфейса, сохранив дополнительную информацию (например, баланс), которую протоколы mps не предоставляют.
Для платежной системы протокол обмена выглядит следующим образом: Запрос поиска договора по номеру телефона: https://<IP>/check/phone/<p_number> Оплата: https://<IP>/payment/<cid>/<tid>/<summ> <IP> - адрес шлюза <p_number> - номер телефона <cid> - идентификатор договора <tid> - инедтификатор транзакции <summ> - сумма платежа Ответы сервера стандартные, согласно потоколу дилерских платежей. Потокол дилерский платежей
Реализация: Basic авторизация остается в силе.
Конфигурация SSL сервера nginx: xxx.xxx.xx - имя сервера MID - id модуля Card B.B.B.B - внутренний адрес сервера биллинга
# HTTPS server server { listen 443; server_name xxx.xxx.xx; ssl on; ssl_certificate cacert.pem; ssl_certificate_key privkey.pem; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; location /payment{ rewrite ^/payment/(.*)/(.*)/(.*)$ /bgbilling/idealer?action=PaymentAdd&cid=$1&trans=$2&summ=$3&mid=MID break; proxy_pass http://B.B.B.B:8080; proxy_redirect off; } location /check/phone{ rewrite ^/check/phone/(.*)$ /bgbilling/idealer?action=ContractFind&phone_number_2=$1&mid=MID break; proxy_pass http://B.B.B.B:8080; proxy_redirect off; } }