Введение
Paybox предоставляет возможность выпустить виртуальную платежную карту в одном из банков - партнеров.
Механика запросов
Заголовок запроса
Request-Id должен быть уникальным. В случае выявления дублей будет возвращена ошибка и запрос не будет обрабатываться.
Подпись запроса
Каждый запрос должен быть подписан. Подпись передается в Headers параметр Sign.
Так же в Headers передается идентификатор пользователя, осуществляющего запрос. Параметр Auth-Id.
Процесс генерации подписи:
  • json запрос должен быть в одну строку, без переносов.
  • добавляем в конец JSON секретный ключ мерчанта (предоставляется менеджером)
  • высчитываем sha256 хеш полученной строки и добавляем его в заголовки запроса, параметр Sign.
Пример строки перед вычислением sha256:
{"cardholder_name":"IVANOV IVAN IVANOVICH","phone":79651234567,"product_code":1,"card_id":555}some_secret_string
Пример генерации подписи на PHP

$merchantId = {{paybox_merchant_id}};
$secretKey = {{paybox_merchant_secret}};

$array = [
  'cardholder_name' => 'IVANOV IVAN IVANOVICH',
  'phone'=> 79651234567,
  'product_code' => 1,
  'card_id' => 555,
];

$requestBody = json_encode($array);

$sign = hash('sha256', $requestBody . $secretKey);
Пример отправки запроса

curl --location --request GET 'some_url.com' \
     --header 'Request-Id: 5aac88a2-d16d-4e01-927c-8b02bf44375c' \
     --header 'Auth-Id: 12345' \
     --header 'Sign: 4f6d4bc08ceac4ffdbd6eec810dce91928132ea9c63b52a3b23f74be98b766b4' \
     --header 'Content-Type: application/json' \
     --data-raw '{
       "cardholder_name": "IVANOV IVAN IVANOVICH",
       "phone": 79651234567,
       "product_code": 1,
       "card_id": 555
     }'