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

Для взаимодействия с API используйте библиотеку Unitpay PHP-SDK.
https://unitpay.ru/api?
     method=initPayment
     params[paymentType]=yandex
     params[sum]=10.00
     params[account]=order413
     params[projectId]=1
     params[secretKey]=ключ
     params[ip]=77.129.27.24
     params[resultUrl]=http://вашсайт.ru 
     params[preauth]=1
     params[customerEmail]=Email плательщика

Обязательные параметры:

Значение Описание
paymentType строка Код платежной системы, через которую будет идти оплата
account
строка Идентификатор абонента в системе партнера (например, логин или email абонента)
sum число Сумма платежа в рублях (например, 10.00)
projectId число ID вашего проекта в системе UnitPay
resultUrl строка Urlencoded адрес перехода пользователя после оплаты (например, http://вашсайт.ru). Если параметр не задан, то будет использован адрес страницы чека платежа.
desc строка Описание заказа
ip строка IP адрес плательщика
secretKey строка Секретный ключ, доступен в настройках проекта


Параметры в зависимости от типа оплаты:
Значение Описание
phone число Телефон с кодом страны (например, 79520000000)
operator строка Буквенный код оператора для SMS-биллинга. Для остальных систем оператор определяется автоматически

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

Значение Описание
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 часов после создания платежа) будет отменен. 
Если параметр не будет использован, платеж будет отменен по истечении срока.
Запрос можно выполнить в тестовом режиме. Узнать подробнее

Цифровая подпись запроса

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

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

Важно. Если вы не передаете currency на форму оплаты, то этот параметр не должен участвовать в формировании подписи.

Пример формирования цифровой подписи на PHP:

function getFormSignature($account, $currency, $desc, $sum, $secretKey) {  
	$hashStr = $account.'{up}'.$currency.'{up}'.$desc.'{up}'.$sum.'{up}'.$secretKey;    
	return hash('sha256', $hashStr); 
}<br>
	

ВАЖНО: Цифровая подпись при создании платежа является дополнительной защитой, вы должны всегда проверять параметры платежа (signature, orderSum, orderCurrency, account и др.) на стороне обработчика.


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

Значение Описание
customerEmail строка Email плательщика
customerPhone число Телефон плательщика в международном формате без "+"
cashItems строка Позиции заказа. name - название позиции, count - количество, price - цена, type - тип позиции из таблицы Типы позиций чека онлайн кассы, если не указано - то commodity. 

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


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

{"result": {
	"message": "Платеж успешно создан.",
	"paymentId": "1400072",  
	"type": "redirect", 
	"redirectUrl": "http://unitpay.ru/pay/redirect/111-ab34c22" 
}}<br>
	
  Значение Описание
message строка Информация о результате формирования платежа
type  строка redirect — требуется переадресация на шлюз платежной платформы
invoice — счет создан автоматически, оплата производится пользователем посредством личного кабинета платежной системы
paymentId  число Номер платежа в системе UnitPay
redirectUrl строка URL для переадресации пользователя на шлюз платежной платформы. Если платеж не требует переадресации, то данный параметр будет отсутствовать

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

{"error": {
	"message": "Описание ошибки"
}}<br>
	
  Значение Описание
message строка Информация с описанием ошибки формирования платежа