https://unitpay.ru/api?method=initPaymentparams[paymentType]=yandexparams[account]=order413params[sum]=10.00params[projectId]=1params[resultUrl]=http://вашсайт.ruparams[ip]=77.129.27.24params[secretKey]=ключparams[signature]=цифровая подписьparams[preauth]=1params[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 часов после создания платежа) будет отменен. Если параметр не будет использован, платеж будет отменен по истечении срока. |
По мере выполнения платежа мы уведомляем платформу магазина о статусе оплаты, последовательно отправляя GET запросы на URL обработчика.
Если вы подключили онлайн-кассу в ЛК, то для формирования чеков необходимо дополнительно передать ряд параметров
Запрос можно выполнить в тестовом режиме. Узнать подробнее
{"result": {"message": "Платеж успешно создан.","paymentId": "1400072","receiptUrl": "https://unitpay.money/pay/receipt/111-ab34c22","type": "redirect","redirectUrl": "http://unitpay.ru/pay/redirect/111-ab34c22"}}
{"result": {"message": "Платеж успешно создан.","paymentId": "1400072","receiptUrl": "https://unitpay.money/pay/receipt/111-ab34c22","type": "response","response": "<form>...</form>"}}
{"result": {"message": "Платеж успешно создан.","paymentId": "1400072","receiptUrl": "https://unitpay.money/pay/receipt/111-ab34c22","type": "response","response": {"success": 1,"orderId": "123","appleResponse": {/* объект */},"approveUrl": "url"}}}
{"result": {"message": "Платеж успешно создан.","paymentId": "1400072","receiptUrl": "https://unitpay.money/pay/receipt/111-ab34c22","type": "invoice","invoiceId": "123"}}
| Значение | Описание |
message | string | Информация о результате формирования платежа |
paymentId | integer | Номер платежа в системе UnitPay |
receiptUrl | string | Ссылка на чек |
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.