init
Инициализация платежа (авторизация не требуется)
Метод: POST https://pro.selfwork.ru/merchant/v1/init
Инициализация страницы оплаты
Заголовки запроса
Запрос необходимо отправлять с заголовками:
- Content-Type:
application/x-www-form-urlencoded - Origin:
https://домен-вашего-сайта/ - Referer:
домен-вашего-сайта
Request Body
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| order_id | string | Да | Уникальный идентификатор заказа вашего магазина. Создается на вашей стороне. (Максимум 35 символов) |
| amount | string | Да | Стоимость платежа, в копейках |
| signature | string | Да | Подпись запроса. Создается на вашей стороне. |
| info[0][name] | string | Да | Наименование товара. Будет отображаться в чеке. |
| info[0][quantity] | integer | Да | Количество позиций по товару. Будет отображаться в чеке. |
| info[0][amount] | integer | Да | Стоимость одного товара. Будет отображаться в чеке. |
| info[1..5][(name|quantity|amount)] | - | Нет | Другие покупки из списка. Всего допустимо не более 6 элементов |
Пример
- cURL
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-страницы.
Подпись запроса
Для формирования подписи используются параметры:
order_idamountinfo[0-5][name]info[0-5][quantity]info[0-5][amount]api_key— Секретный ключ из параметров магазина
Никому не сообщайте секретный ключ. Он не должен фигурировать в запросе, в 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
Примеры запроса
Незакодированное тело запроса

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