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

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

GET https://unitpay.ru/pay/PUBLIC-KEY?sum&account&desc&signature

Для инициализации платежа посредством единой формы оплаты вам достаточно направить пользователя по специальному URL и передать ряд обязательных для оплаты параметров.

Основные параметры:

name
type
description

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 проекта можно найти на странице Настройки проекта

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

name
type
description

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&currency=RUB&desc=test_unitpay&sum=10&signature=0d3904fc3f46aaf6d153621541a54f85e921d491d43cc36728d21bed47457790

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

Вы можете определить платежный метод, который будет использоваться по умолчанию для пользователя. Для этого в конец URL вашей платежной формы добавьте параметр billingCode, соответствующий буквенному коду платежной системы.

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

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

account

текст

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

paymentId

число

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

Last updated

Was this helpful?