Описание процесса перевода с карты на карту

Протокол POST-P2P позволяет выполнять операции перевода средств с карты на карту с использованием API-запросов.

Для подключения необходимо получить параметры:

CLIENT_KEY

Уникальный ключ, который идентифицирует аккаунт в Платежной Платформе

CLIENT_PASSWORD

Пароль клиента, для аутентификации запросов в Платежную Платформу

PAYMENT_URL

URL Платежной Платформы, на который необходимо отправлять запросы

Краткое описание взаимодействия с процессингом
Команды нужно отправлять в виде server-to-sever HTTPS POST-запросов (например с помощью curl), на определенный адрес Платежной Платформы (PAYMENT_URL). В ответ Платежная Платформа вернет JSON-строку (http://json.org).

Протокол работает только в синхронном режиме, и после отправки запроса сразу же будет получен ответ.
В протоколе реализована поддержка двух схем проверки отправителя перевода:
1) 3DS - проверка, что платеж совершает именно держатель карты, выполняется на основе технологии 3-D Secure.
2) LOOK-UP - проверка выполняется путем блокировки на карте отправителя небольшой суммы. Отправитель, для подтверждения того, что он является владельцем карты, должен ввести код из транзакции блокировки (полученный по SMS или звонком в банк).
В зависимости от настроек Вашего аккаунта и особенностей используемых карт, может потребоваться одна, две или ни одной проверки.


Жизненный цикл перевода
Финансовая операция перевода средств (Transfer) может находиться в Платежной Платформе в следующих статусах:
1. INIT - перевод зарегистрирован в Платежной Платформе, но еще не выполнен;
2. 3DS - перевод находится в процессе прохождения 3DS;
3. VERIFICATION_BCODE - перевод находится в процессе прохождения LOOK-UP авторизации;
4. SETTLED - перевод выполнен успешно;
5. DECLINED - перевод отклонен.

Выполнение каждой команды протокола (кроме запроса статуса) создает новую транзакцию, которая переводит финансовую операцию перевода средств (Transfer) в очередной статус.
Перевод может перейти в статус DECLINED на любом этапе.
Возможные последовательности жизненного цикла, для успешной операции перевода средств:
INIT -> 3DS -> SETTLED
INIT -> VERIFICATION_BCODE -> SETTLED
INIT -> 3DS -> VERIFICATION_BCODE -> SETTLED


Формирование подписи
Каждый запрос, который отправляется на Платежную Платформу, должен включать в себя подпись (параметр Signature). Подпись должна включать в себя все поля, которые отправляются в данном запросе.
Для формирования подписи нужно сконкатенировать все значения массива передаваемых параметров, в той последовательности, в которой они будут присутствовать в запросе. После этого, полученную строку необходимо перевести в нижний регистр и сформировать подпись по формуле:
sha1 ( CLIENT_PASSWORD . $str )
Пример на PHP:
sha1(CLIENT_PASSWORD . strtolower(implode('', $params)));