Paycom (UZ)
Сайт платёжной системы https://paycom.uz
Документация по api http://paycom.uz/api/
Тесты платежной системы http://test.paycom.uz/
Настройка
- Создать кассу в личном кабинете Paycom. Используется тип счета: "накопительный". В настройках кассы опцией необходимо добавить параметр для идентификации пользователя (должен совпадать с опцией Поле для идентификации пользователя).
- Настроить данные в разделе Платежные системы, пункт Настройка Paycom (UZ)
Пожалуйста, обратите внимание, что максимальная сумма и минимальная сумма указываются в сумах. Paycom обычно оперирует тийинами, т.е. сотыми долями сума. Например, при проведении тестов, если Вы укажите минимальную сумму в биллинге равную 1000, тогда в тестовой среде Paycom нужно проводить платёж на 100000 или больше. Опции:
- Включить платежную систему
- Песочница (тестовый режим)
- ID для системы
- Key для системы
- Максимальная сумма
- Минимальная сумма
- Поле для идентификации пользователя. Например, contract_number или login, должен совпадать с полем идентификации из настроек кассы Paycom (поля доступны в разделе Выбранное поле для идентификации абонента)
- Указать для платежной системы адрес обработчика, например https://10.0.0.1:2443/paycom_uz.php, где 10.0.0.1 замените на адрес Вашего биллинга, доступный из интернет
- Для приема платежей со стороны платежной системы необходимо добавить IP-адреса, с которых осуществляется запрос в список разрешенных, IP через пробел.
Это делается через настройки сети для платежных систем.
Отладка
Curl
Вы можете смотреть логи обработчика уведомлений в файле
/app/asr_fiscal/var/log/paysystems/PAYCOM_UZ.log
|
Для теста возможности провести платёж, Вы можете использовать следующий запрос:
curl \ -u Paycom:"Passord%1" \ -k http://10.0.0.1:1444/paycom_uz.php \ --referer https://helpdesk.carbonsoft.ru -d '{"jsonrpc":"2.0","id":1234,"method":"CheckPerformTransaction","params":{"amount":10000,"account":{"login":"test"}}}' \ | jq .
- Пользователь Basic авторизации всегда Paycom
- Пароль Passord%1 возьмите из поля "Key для системы" в настройках. Пароль обязательно должен быть настроен, он используется для Basic авторизации.
- 10.0.0.1 замените на IP Вашего биллинга
- login - это "Поле для идентификации пользователя" из настроек, так же там может быть contract_number, укажите как в настройках,
- Если используется login, то это логин из учётной записи абонента; если учётных записей несколько, подойдёт любая
- test - укажите соответственно логин или номер договора абонента, на котором хотите провести проверку, этот абонент должен быть уже заведён в биллинге
- jq - утилита, форматирующая вывод JSON, если будет ошибка попробуйте выполнить yum -y install jq и повторить проверку
tcpdump
В период тестов или для отладки проблем в процессе эксплуатации может быть полезным посмотреть какие именно данные приходят в запросах от платёжной системы. Это можно сделать командой tcpdump, если отправлять запросы по протоколу http (по-умолчанию порт 1444).
Настройте платёжку так, чтобы она обращалась к биллингу по HTTP, например "http://10.0.0.1:1444/paycom_uz.php", перед тестом запустите в терминале tcpdump
tcpdump -A -nn -i any -s 0 'tcp port 1444'
В терминале Вы сможете увидеть что-то вроде этого:
[root@carbon ~]# tcpdump -A -nn -i any -s 0 'tcp port 1444' tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes 12:56:15.645610 IP 10.0.0.1.1444 > 10.0.0.2.57860: Flags [S.], seq 672616883, ack 1665113934, win 14480, options [mss 1460,sackOK,TS val 1811669256 ecr 1173652606,nop,wscale 7], length 0 E..<..@.@..7_.d....U....(.Q.c?.N..8.)c......... k...E..~.... 12:56:15.729663 IP 10.0.0.2.57860 > 10.0.0.1.1444: Flags [.], ack 1, win 502, options [nop,nop,TS val 1173652690 ecr 1811669256], length 0 E..4Fw..6......U_.d.....c?.N(.Q......u..... E...k... 12:56:15.729822 IP 10.0.0.2.57860 > 10.0.0.1.1444: Flags [P.], seq 1:406, ack 1, win 502, options [nop,nop,TS val 1173652690 ecr 1811669256], length 405 E...Fx..6..2...U_.d.....c?.N(.Q.....ol..... E...k...POST /paycom_uz.php HTTP/1.1 Host: 10.0.0.1:1444 Authorization: Basic UGF5Y29tOlBhc3NvcmQlMQ== User-Agent: curl/7.81.0 Accept: */* Referer: https://carbonsoft.ru Content-Length: 125 Content-Type: application/x-www-form-urlencoded {"jsonrpc":"2.0","id":84339,"method":"CheckPerformTransaction","params":{"amount":10000,"account":{"login":"test"}}}
Тут можно увидеть заголовки и тело запроса, и отладить проводя локальные тесты с подобными данными с помощью curl.
Песочница Paycom
Для песочницы используйте данные из настроек:
- Merchant ID - это "ID для системы"
- TEST_KEY - это "Key для системы"
Параллельно на сервере запустите мониторинг лога /app/asr_fiscal/var/log/paysystems/PAYCOM_UZ.log и захват трафика с tcpdump.
Обратите внимание, что в песочнице размер платежа указывается в тийинах, а в настройках платёжки в биллинге - в сумах. Т.е. указав в песочнице сумму "10000", чтобы он прошел успешно, "Минимальная сумма" со стороны биллинга должна быть указана "100" или меньше.