Интеграция с платежной системой с использованием модуля 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:
 
- x.xxx.xx - имя сервера
 - MID - id модуля Card
 - B.B.B.B - внутренний адрес сервера биллинга
 - для лучшей надежности можно заменить phone_number_2=$1 на phone_number_2=<E.164 prefix>$1
 
  # 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;
        }
    }
						
						
		