Paycom (UZ), Payme

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (12)

просмотр истории страницы
# Создать кассу в личном кабинете Paycom. Используется тип счета: "накопительный". В настройках кассы опцией необходимо добавить параметр для идентификации пользователя (должен совпадать с опцией *Поле для идентификации пользователя*).
# Настроить данные в разделе *Платежные системы*, пункт *Настройка Paycom (UZ)*
{info}
Пожалуйста, обратите внимание, что {{максимальная сумма}} и {{минимальная сумма}} указываются в *сумах*. Paycom обычно оперирует тийинами, т.е. сотыми долями сума. Например, при проведении тестов, если Вы укажите минимальную сумму в биллинге равную 1000, тогда в тестовой среде Paycom нужно проводить платёж на 100000 или больше.
{info}
Опции:
#* Включить платежную систему
#* Минимальная сумма
#* Поле для идентификации пользователя. Например, *contract_number* или *login*, должен совпадать с полем идентификации из настроек кассы Paycom (поля доступны в разделе [Выбранное поле для идентификации абонента|Платежные системы. Общее])
# Указать для платежной системы адрес обработчика, например {code}http://10.0.0.1:1444/paycom_uz.php{code}, https://10.0.0.1:2443/paycom_uz.php, где {{10.0.0.1}} замените на адрес Вашего биллинга, доступный из интернет
# Для приема платежей со стороны платежной системы необходимо добавить IP-адреса, с которых осуществляется запрос в список разрешенных, IP через пробел.
Это делается через [настройки сети для платежных систем|CarbonBilling:Настройка сети для платежных систем].

h1. Отладка

h2. Curl

{tip}
Вы можете смотреть логи обработчика уведомлений в файле
{tip}

h1. Отладка

Для теста возможности провести платёж, Вы можете использовать следующий запрос:
{code}
curl \
-u Paycom:"Passord%1" \
-k https://10.0.0.1:2443/paycom_uz.php http://10.0.0.1:1444/paycom_uz.php \
-d '{"id":1234,"method": "CheckPerformTransaction", "jsonrpc":"2.0", "params": { "amount": 100000, "account": {"login": "test"}}}' \
--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, если отправлять запросы по протоколу http (по-умолчанию порт 1444).

Настройте платёжку так, чтобы она обращалась к биллингу по HTTP, например "http://10.0.0.1:1444/paycom_uz.php", перед тестом запустите в терминале tcpdump

{code}
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" или меньше.