Создание платежа

https://unitpay.ru/api?
method=initPayment
params[paymentType]=yandex
params[account]=order413
params[sum]=10.00
params[projectId]=1
params[resultUrl]=http://вашсайт.ru
params[ip]=77.129.27.24
params[secretKey]=ключ
params[signature]=цифровая подпись
params[preauth]=1
params[customerEmail]=Email плательщика

Обязательные параметры:

Значение

Описание

paymentType

строка

Код платежной системы, через которую будет идти оплата

account

строка

Идентификатор абонента в системе партнера (например, логин или email абонента)

sum

число

Сумма платежа в рублях (например, 10.00)

projectId

число

ID вашего проекта в системе UnitPay

resultUrl

строка

Urlencoded адрес перехода пользователя после оплаты (например, http://вашсайт.ru). Если параметр не задан, то будет использован адрес страницы чека платежа.

desc

строка

Описание заказа

ip

строка

IP адрес плательщика

secretKey

строка

Секретный ключ, доступен в настройках проекта

signature

строка

Цифровая подпись запроса. Они защищает вас от злоумышленников - подмены описания или стоимости заказа, размещения ссылки на оплату на ресурсах мошенников. Образуется как sha256( account + "{up}" + currency + "{up}" + desc + "{up}" + sum + "{up}" + secretKey), где sha256 - метод хеширования; "{up}" - разделитель параметров в хеш-функции; secretKey - секретный ключ проекта (доступен в личном кабинете); Важно. Если вы не передаете currency на форму оплаты, то этот параметр не должен участвовать в формировании подписи.

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

Значение

Описание

phone

число

Телефон с кодом страны (например, 79520000000)

operator

строка

Буквенный код оператора для SMS-биллинга. Для остальных систем оператор определяется автоматически

Значение PUBLIC KEY и SECRET KEY проекта можно найти на странице Настройки проекта

Пример формирования цифровой подписи на PHP:

function getFormSignature($account, $currency, $desc, $sum, $secretKey) {
$hashStr = $account.'{up}'.$currency.'{up}'.$desc.'{up}'.$sum.'{up}'.$secretKey;
return hash('sha256', $hashStr);
}

Пример формирования цифровой подписи на Perl:

sub getSignature {
my ($method, $params, $secretKey) = @_;
delete $params->{sign};
delete $params->{signature};
my $s = $method;
foreach my $key (sort keys %{$params}) {
$s .= '{up}' . $params->{$key};
}
$s .= '{up}' . $secretKey;
use Digest::SHA qw(sha256_hex);
return sha256_hex($s);
}

Дополнительные параметры оплаты:

Значение

Описание

currency

строка

Валюта заказа по стандарту ISO 4217 (RUB, UAH, BYN, EUR, USD). Если платежная система не поддерживает требуемую валюту, то сумма будет сконвертирована в валюту системы оплаты

locale

строка

Принудительное указание языка платежной формы, допустимые значения: ru, en. По умолчанию язык формы определяется исходя из страны, к которой относится IP адрес пользователя

signature

строка

Цифровая подпись запроса. Данная функция является обязательной у всех новых партнёров Unitpay. Они защищает вас от злоумышленников - подмены описания или стоимости заказа, размещения ссылки на оплату на ресурсах мошенников.

backUrl

строка

Адрес возврата пользователя с платежной формы без совершения покупки, по умолчанию используется адрес проекта. В адресе обязательно должен использоваться домен проекта. Примеры: "https://redirect.<домен проекта>/?someParams", "https://<домен проекта>/redirect/"

subscription

true/false

Используйте данный флаг, если требуется создать подписку по карте плательщика. Идентификатор подписки (subscriptionId) будет передан в методе PAY на ваш обработчик платежа. Использование подписок возможно только после согласования с вашим курирующим менеджером

subscriptionId

число

Идентификатор подписки, по которой требуется произвести списание средств. Данный параметр должен быть предварительно получен в методе PAY на ваш обработчик платежа

preauth

true/false

Используйте этот флаг для создания платежа с преавторизацией, по умолчанию флаг выключен и значение равно 0

preauthExpireLogic

число

Поле для логики блокировки платежей с преавторизацией 0 - При отсутствии запроса на подтверждение или отмену, платеж по истечении срока блокировки на стороне банка-эквайера (~114 часов после создания платежа) будет подтвержден 1 - При отсутствии запроса на подтверждение или отмену, платеж по истечении срока блокировки на стороне банка-эквайера (~114 часов после создания платежа) будет отменен. Если параметр не будет использован, платеж будет отменен по истечении срока.

Если вы подключили онлайн-кассу в ЛК, то для формирования чеков необходимо дополнительно передать ряд параметров

Запрос можно выполнить в тестовом режиме. Узнать подробнее

Успешный ответ

Redirect
Response (не ApplePay)
Response (ApplePay)
Invoice
Redirect
{
"result": {
"message": "Платеж успешно создан.",
"paymentId": "1400072",
"receiptUrl": "https://unitpay.money/pay/receipt/111-ab34c22",
"type": "redirect",
"redirectUrl": "http://unitpay.ru/pay/redirect/111-ab34c22"
}
}
Response (не ApplePay)
{
"result": {
"message": "Платеж успешно создан.",
"paymentId": "1400072",
"receiptUrl": "https://unitpay.money/pay/receipt/111-ab34c22",
"type": "reponse",
"response": "<form>...</form>"
}
}
Response (ApplePay)
{
"result": {
"message": "Платеж успешно создан.",
"paymentId": "1400072",
"receiptUrl": "https://unitpay.money/pay/receipt/111-ab34c22",
"type": "reponse",
"response": {
"success": 1,
"orderId": "123",
"appleResponse": {
/*объект*/
},
"approveUrl": "url"
}
}
}
Invoice
{
"result": {
"message": "Платеж успешно создан.",
"paymentId": "1400072",
"receiptUrl": "https://unitpay.money/pay/receipt/111-ab34c22",
"type": "invoice",
"invoiceId": "123"
}
}

Значение

Описание

message

string

Информация о результате формирования платежа

paymentId

integer

Номер платежа в системе UnitPay

receiptUrl

string

Ссылка на чек Примечание: возвращается, если подключена касса Юнит.Чеки, Атол или e-comm.

type

string

Тип ответа:

redirect — необходимо перенаправить пользователя на адрес, указанные в redirectUrl

response - необходимо показать пользователю информацию, указанную в response invoice — счет создан автоматически и направлен плательщику. Дополнительных действий не требуется

redirectUrl

string

URL для переадресации пользователя на шлюз платежной платформы

response

string

html код формы, а если ApplePay, то json

html - необходимо отобразить на странице

json - необходимо направить пользователя по approveUrl

invoiceId

string

id счета

Ошибочный ответ

{"error": {
"message": "Описание ошибки"
}}

Значение

Описание

message

строка

Информация с описанием ошибки формирования платежа

Если ваш сайт создан с помощью CMS, ознакомьтесь со списком готовых модулей. Для взаимодействия с API вы можете использовать библиотеку Unitpay PHP-SDK.