Создание платежа (простой способ)

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

Для инициализации платежа посредством единой формы оплаты вам достаточно направить пользователя по специальному URL и передать ряд обязательных для оплаты параметров.Формат: https://unitpay.ru/pay/PUBLIC KEY?sum&account&desc&signature

Пример: https://unitpay.ru/pay/111111-11111?sum=100&account=222111&desc=Online%20course&signature=2c38bb3114b2f02222ee35f6b60c6bbe628ad31bed59633787204ae59659a02e

Значение

Описание

sum

число

Сумма платежа. По умолчанию в рублях. См. дополнительный параметр currency

account

строка

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

desc

строка

Описание заказа. Используется только для информирования при совершении платежа

signature

строка

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

Значение 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 адрес пользователя

backUrl

строка

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

Онлайн-кассы для юридических лиц РФ

Значение

Описание

customerEmail

строка

Email плательщика

customerPhone

число

Телефон плательщика в международном формате без "+"

cashItems

строка

Позиции заказа. name - название позиции, count - количество, price - цена, type - тип позиции из таблицы Типы позиций чека онлайн кассы, если не указано - то commodity. Значение данного параметра обязательно должно быть переведено в json и закодировано с помощью base64. Формат позиций параметра: base64_encode(json_encode([["name" => "Хостинг на 1 месяц", "count" => 1, "price" => 10.00, "type" => "commodity"]]));

Метод оплаты по умолчанию

Вы можете определить платежную систему, которая будет использоваться по умолчанию для пользователя. Для этого в конец URL вашей платежной формы (к примеру https://unitpay.ru/pay/demo) добавьте параметр / код_системы, соответствующий буквенному коду платежной системы.

Возврат на сайт магазина

После инициализации оплаты пользователь переходит на страницу чека, где отслеживается статус платежа. При получении успешного либо ошибочного статуса пользователь перенаправляется на сайт партнера (поля Fail URL/Success URL в настройках личного кабинета) с GET параметрами:

Значение

Описание

account

текст

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

paymentId

число

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