Skip to main content

Общие принципы

Програмное взаимодействие информационной системы продавца с сервером эквайринга осуществляетсья по протоколу HTTPS используя REST интерфейс. В качестве формата обмена данными для запросов и ответов исползуется JSON в кодировке UTF-8 - в запросе продавец должен передавать корректный заголовок Content-Type(Content-Type: application/json). Для всех HTTPS запросов используется единый URL сервера эквайринга - https://pay.primorsky.online

Аутентификация продавца

Аутентификация осуществляется при помощи API токена в Authorization заголовке HTTP запроса, пример:

Authorization: Bearer hEjM719pNaX6Xp-rF_bCoT564vKQH7GzGL2CZ1iv9mI

Подпись запросов

В качестве дополнительной меры безопасности продавцом должна выполняться электронная цифровая подпись запросов. При подключении к эквайрингу продавец выполняет генерацию ключевой пары - публичный ключ передает эквайрингу в рамках регламента подключения, а приватный ключ хранит на своей стороне соблюдая меры безопасности и использует для подписи запросов.

Параметры ключей и подписи:

  • Алгоритм: RSA DES3
  • Длинна ключа: 2048
  • Функция хеширования: SHA256
  • Подписываемая часть запроса: BODY-часть HTTP запроса

Полученная сигнатура должна кодироваться в Base64 и передаваться в Signature заголовке HTTP запроса:

Signature: 6vWcMfbZEk54Ql2D3fKV1R0SRepUPgwMacFPwfz2H7MEK+h...M9dFWPXkLu4hHb4c64KsyTBp82L2Pm9ggHTjf+A==

Пример создания подписи запроса при помощи утилиты командкой строки openssl:

echo -n '{ "order_id": "1", "amount": 100 }' | openssl dgst -sha256 -binary -sign private.pem | base64

Обработка ошибок

Платежный шлюз возвращает для всех методов запросы к которым вызвали ошибку возвращает унифициорованную структуру:

НаменованиеТипОбязательноОписание
statusСтрокаДаСтатус запроса(принимает значение "error")
errorСтрокаНетТип ошибки
errorsСтрока[]НетОписание ошибки(ошибок)

Методы эквайринга

TODO