... h1. Paycom (UZ) Сайт платёжной системы [https://paycom.uz] Документация по api [http://paycom.uz/api/] Тесты платежной системы [http://test.paycom.uz/] h2. Настройка # Создать кассу в личном кабинете Paycom. Используется тип счета: "накопительный". В настройках кассы опцией необходимо добавить параметр для идентификации пользователя (должен совпадать с опцией *Поле для идентификации пользователя*). # Настроить данные в разделе *Платежные системы*, пункт *Настройка Paycom (UZ)* {info} Пожалуйста, обратите внимание, что {{максимальная сумма}} и {{минимальная сумма}} указываются в *сумах*. Paycom обычно оперирует тийинами, т.е. сотыми долями сума. Например, при проведении тестов, если Вы укажите минимальную сумму в биллинге равную 1000, тогда в тестовой среде Paycom нужно проводить платёж на 100000 или больше. {info} Опции: #* Включить платежную систему #* Песочница (тестовый режим) #* ID для системы #* Key для системы #* Максимальная сумма #* Минимальная сумма #* Поле для идентификации пользователя. Например, *contract_number* или *login*, должен совпадать с полем идентификации из настроек кассы Paycom (поля доступны в разделе [Выбранное поле для идентификации абонента|Платежные системы. Общее]) # Указать для платежной системы адрес обработчика, например https://10.0.0.1:2443/paycom_uz.php, где {{10.0.0.1}} замените на адрес Вашего биллинга, доступный из интернет # Для приема платежей со стороны платежной системы необходимо добавить IP-адреса, с которых осуществляется запрос в список разрешенных, IP через пробел. Это делается через [настройки сети для платежных систем|CarbonBilling:Настройка сети для платежных систем]. h1. Отладка h2. Curl {tip} Вы можете смотреть логи обработчика уведомлений в файле {code}/app/asr_fiscal/var/log/paysystems/PAYCOM_UZ.log{code} {tip} Для теста возможности провести платёж, Вы можете использовать следующий запрос: {code} 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 . {code} * Пользователь Basic авторизации всегда {{Paycom}} * Пароль {{Passord%1}} возьмите из поля "Key для системы" в настройках. Пароль обязательно должен быть настроен, он используется для Basic авторизации. * {{10.0.0.1}} замените на IP Вашего биллинга * {{login}} - это "Поле для идентификации пользователя" из настроек, так же там может быть *contract_number*, укажите как в настройках, * Если используется {{login}}, то это логин из [учётной записи|CarbonBilling:Учетная запись. Создание и изменение.] абонента; если учётных записей несколько, подойдёт любая * {{test}} - укажите соответственно логин или номер договора абонента, на котором хотите провести проверку, этот абонент должен быть уже заведён в биллинге * {{jq}} - утилита, форматирующая вывод JSON, если будет ошибка попробуйте выполнить {{yum -y install jq}} и повторить проверку h2. tcpdump
|
... tcpdump -A -nn -i any -s 0 'tcp port 1444' {code} В терминале Вы сможете увидеть что-то вроде этого: {code} [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"}}} {code} Тут можно увидеть заголовки и тело запроса, и отладить проводя локальные тесты с подобными данными с помощью {{curl}}. h2. Песочница Paycom [Документация на сайте Paycom|https://developer.help.paycom.uz/ru/pesochnitsa] [Ссылка на песочницу|https://test.paycom.uz/instruction] Для песочницы используйте данные из настроек: * Merchant ID - это "ID для системы" * TEST_KEY - это "Key для системы" Параллельно на сервере запустите мониторинг лога {{/app/asr_fiscal/var/log/paysystems/PAYCOM_UZ.log}} и захват трафика с {{tcpdump}}. Обратите внимание, что в песочнице размер платежа указывается в тийинах, а в настройках платёжки в биллинге - в сумах. Т.е. указав в песочнице сумму "10000", чтобы он прошел успешно, "Минимальная сумма" со стороны биллинга должна быть указана "100" или меньше.
|