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

Если ваш сайт создан с помощью CMS, ознакомьтесь со списком готовых модулей.

Для взаимодействия с API используйте библиотеку Unitpay PHP-SDK.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 часов после создания платежа) будет отменен. Если параметр не будет использован, платеж будет отменен по истечении срока.

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

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

1{"result": {2 "message": "Платеж успешно создан.",3 "paymentId": "1400072", 4 "type": "redirect", 5 "redirectUrl": "http://unitpay.ru/pay/redirect/111-ab34c22" 6}}&lt;br&gt;7

Значение

Описание

message

строка

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

type

строка

redirect — требуется переадресация на шлюз платежной платформы invoice — счет создан автоматически, оплата производится пользователем посредством личного кабинета платежной системы

paymentId

число

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

redirectUrl

строка

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

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

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

Значение

Описание

message

строка

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