Создание платежа (простой способ)
Создание платежа
GET
https://unitpay.ru/pay/PUBLIC-KEY?sum&account&desc&signature
Для инициализации платежа посредством единой формы оплаты вам достаточно направить пользователя по специальному URL и передать ряд обязательных для оплаты параметров.
Основные параметры:
sum
number
Сумма платежа. По умолчанию в рублях*.
*- см. дополнительный параметр currency.
account
string
Идентификатор абонента в вашей системе (например email или номер заказа).
desc
string
Описание заказа. Используется только для информирования при совершении платежа.
signature
string
Цифровая подпись запроса. Она защищает вас от злоумышленников - подмены описания или стоимости заказа, размещения ссылки на оплату на ресурсах мошенников.
Образуется как sha256(account + "{up}" + currency + "{up}" + desc + "{up}" + sum + "{up}" + secretKey)
,
где sha256 - метод хеширования;
"{up}" - разделитель параметров в хеш-функции;
secretKey - секретный ключ проекта (доступен в настройках проекта);
Важно. Если вы не передаете currency на форму оплаты, то этот параметр не должен участвовать в формировании подписи.
Значение PUBLIC KEY и SECRET KEY проекта можно найти на странице Настройки проекта

Дополнительные параметры:
currency
string
Валюта заказа по стандарту ISO 4217 (EUR, USD, RUB, UAH, BYN и тд. Полный список валют). Если платежная система не поддерживает требуемую валюту, то сумма будет сконвертирована в валюту системы оплаты.
locale
string
Принудительное указание языка платежной формы, допустимые значения: ru, en.
По умолчанию язык формы определяется исходя из страны, к которой относится IP адрес пользователя.
backUrl
string
платежной формы без совершения покупки, по умолчанию используется адрес проекта. В адресе обязательно должен использоваться домен проекта.
Примеры:
https://redirect.<домен проекта>/?someParams
https://<домен проекта>/redirect/
resultUrl
string
Полный URL адрес перехода пользователя после оплаты (например, http://вашсайт.ru), принудительно отправляет плательщика по этому адресу после оплаты.
Важно: домен не должен отличаться от домена проекта. Если параметр не задан, то будет использован адрес страницы чека платежа.
subscription
string
Используйте данный флаг, если требуется создать подписку по карте плательщика. Идентификатор подписки (subscriptionId) будет передан в методе PAY на ваш обработчик платежа. Использование подписок возможно только после согласования со службой безопасности.
Пример формирования цифровой подписи:
function getFormSignature($account, $currency, $desc, $sum, $secretKey) {
$hashStr = $account.'{up}'.$currency.'{up}'.$desc.'{up}'.$sum.'{up}'.$secretKey;
return hash('sha256', $hashStr);
}
Пример кода для формирования ссылки на оплату:
<?php
$params = [
'account' => 'test_unitpay',
'currency' => 'RUB',
'desc' => 'test_unitpay',
'sum' => '100',
] ;
$billingCode = 'card';
$projectPublicId = '123456-1bfac';
$secretKey = 'secretKey';
$signatureParams = ['desc' => $params['desc'], 'sum' => $params['sum'], 'account' => $params['account'], 'currency' => $params['currency']];
ksort($signatureParams);
$signatureParams[] = $secretKey;
$signature = hash('sha256', implode('{up}', $signatureParams));
$baseUrl = 'https://unitpay.ru';
$params['signature'] = $signature;
$uri = http_build_query($params);
echo $baseUrl.'/pay/'.$projectPublicId.'/'.$billingCode.'?'.$uri.PHP_EOL;
Пример правильно сформированной ссылки на оплату:
https://unitpay.ru/pay/123456-1bfac/card?account=test_unitpay¤cy=RUB&desc=test_unitpay&sum=10&signature=0d3904fc3f46aaf6d153621541a54f85e921d491d43cc36728d21bed47457790
Метод оплаты по умолчанию
Вы можете определить платежный метод, который будет использоваться по умолчанию для пользователя. Для этого в конец URL вашей платежной формы добавьте параметр billingCode, соответствующий буквенному коду платежной системы.
Возврат на сайт магазина
После инициализации оплаты пользователь переходит на страницу чека, где отслеживается статус платежа. При получении успешного либо ошибочного статуса пользователь переходит на сайт партнера по кнопке "В магазин" (поля Fail URL/Success URL в настройках личного кабинета) с GET параметрами:
account
текст
Идентификатор плательщика в системе партнера (например, логин или email)
paymentId
число
Номер платежа в системе UnitPay
Last updated
Was this helpful?