Перейти к основному содержимому

init

Инициализация платежа (авторизация не требуется)​

Метод: POST https://pro.selfwork.ru/merchant/v1/init

Инициализация страницы оплаты

Заголовки запроса​

Запрос необходимо отправлять с заголовками:

  • Content-Type: application/x-www-form-urlencoded
  • Origin: https://домен-вашего-сайта/
  • Referer: домен-вашего-сайта

Request Body​

ПараметрТипОбязательныйОписание
order_idstringДаУникальный идентификатор заказа вашего магазина. Создается на вашей стороне. (Максимум 35 символов)
amountstringДаСтоимость платежа, в копейках
signaturestringДаПодпись запроса. Создается на вашей стороне.
info[0][name]stringДаНаименование товара. Будет отображаться в чеке.
info[0][quantity]integerДаКоличество позиций по товару. Будет отображаться в чеке.
info[0][amount]integerДаСтоимость одного товара. Будет отображаться в чеке.
info[1..5][(name|quantity|amount)]-НетДругие покупки из списка. Всего допустимо не более 6 элементов

Пример​

curl -X POST "https://pro.selfwork.ru/merchant/v1/init" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Origin: https://your-domain.com/" \
-H "Referer: your-domain.com" \
-d "order_id=ORDER_12345&amount=150000&signature=your_signature_here&info%5B0%5D%5Bname%5D=Веб-разработка&info%5B0%5D%5Bquantity%5D=1&info%5B0%5D%5Bamount%5D=100000&info%5B1%5D%5Bname%5D=Дизайн&info%5B1%5D%5Bquantity%5D=1&info%5B1%5D%5Bamount%5D=50000"

Ответ​

200: OK Сервер отправит HTML-страницу для оплаты заказа. Если подпись запроса некорректная, магазин заблокирован или произошла ещё какая-то ошибка, она отобразится внутри HTML-страницы.

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

Для формирования подписи используются параметры:

Безопасность секретного ключа

Никому не сообщайте секретный ключ. Он не должен фигурировать в запросе, в Javascript или внутри HTML-страницы. Секретный ключ не должен быть виден в браузере магазина. Если есть подозрение, что секретный ключ скомпрометирован, тогда сгенерируйте новый ключ в личном кабинете.

От полученной строки вычисляется хэш по алгоритму SHA-256 в формате HEX(lowercase), это значение нужно передать в параметр signature.

Пример формирования подписи​

order_id: "97e196c0-a344-4230-a028"
amount: "400000"
info:
"name":"Cвитер ручной работы", "quantity":"2", "amount":"100000"
"name":"Штаны ручной работы", "quantity":"1", "amount":"200000"
api_key: "UxYjU5ZDMxOGU1ZmFjYzE3"

Тогда в signature нужно передать:
sha256 от (97e196c0-a344-4230-a028400000Cвитер ручной работы2100000Штаны ручной работы1200000UxYjU5ZDMxOGU1ZmFjYzE3)

В итоге получим (sha256 - HEX(lowercase)):
bb79c263a69ccbd616c11e94c53c47399a32d9a103797839726ba661d374a551

Примеры запроса​

Незакодированное тело запроса​

Незакодированное тело запроса

Итоговое тело запроса​

Пример итогового тела запроса