Общие принципы
Програмное взаимодействие информационной системы продавца с сервером эквайринга осуществляетсья по протоколу 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