P2X - платежи для сайта

Создание заказа

Для создания заказа в магазине Вам необходимо отправить Покупателя на подготовленный URL GET запросом с параметрами указанными ниже.

URL нашего сервиса https://p2x.ru/bill.php

Параметры (* обязательные):

Параметр Тип Описание
shop * int ID Вашего магазина
sum * float Сумма к оплате в рублях (Если в сумме есть копейки, то отправляйте их с разделителем "." Пример: 100.18)
order_id * string Идентификатор заказа в Вашей системе. Значение параметра может содержать только буквы, цифры и символы : , -, _, [, ] ,|.
email * string E-Mail клиента
sign * string Подпись заказа (SHA256 Хеш). Методика формирования подписи
method string Кодовое название платежной системы (см. способы оплаты). Предлагаемый способ оплаты. Клиент сможет изменить его в процессе оплаты
desc string Описание заказа (показывается клиенту при оплате)
us_key string Так же Вы можете передавать свои параметры, которые наш сервер вернет на Ваш URL оповещения. Ключи параметров должны начинаться с us_ и содержать только латинские символы и цифры. Максимальная длина - 15. Значения параметров могут содержать только буквы, цифры и символы -, _, [, ], + ,=,|. Например: <input type="text" name="us_name" value="ivanov"> <input type="text" name="us_login" value="ivanov1971">


Методика формирования подписи

Подпись для создания заказа формируется путем нахождения SHA256 Хеша от строки:
" ID Вашего магазина :Сумма к оплате :Секретный ключ из настроек магазина :Email плательщика"


Пример формы на PHP

<?php
$shop = ''; // ID Вашего магазина
$sum = 10.54; // Сумма к оплате
$email = 'email@email.ru'; // Email покупателя
$secret = ''; // Секретный ключ из настроек магазина
$order_id = 'php_form_order_1'; // Идентификатор заказа в Вашей системе
$sign = hash('sha256', implode(':', [$shop, $sum, $secret, $email]));
$desc = 'Order Payment'; // Описание заказа
?>


<form method="POST" action="https://p2x.ru/bill.php">
<input type="hidden" name="shop" value="<?php echo $shop ?>">
<input type="hidden" name="sum" value="<?php echo $sum ?>">
<input type="hidden" name="email" value="<?php echo $email ?>">
<input type="hidden" name="order_id" value="<?php echo $order_id ?>">
<input type="hidden" name="sign" value="<?php echo $sign ?>">
<input type="hidden" name="desc" value="<?php echo $desc ?>">
<input type="submit" name="pay" value="Пополнить">
</form>


Оповещение об оплате заказа

После оплаты заказа мы один раз отправляем HTTP уведомление на Ваш URL Оповещения. Важно! Мы не отправляем повторно HTTP уведомление в случае неуспешного ответа. Если до Вас уведомление не дошло, в списке заказов статус заказа не изменится. Вы всегда можете самостоятельно отправить уведомление. Отправка уведомления будет выполнена, если у Вашего магазина указан URL Оповещения.

Скрипт из URL оповещения обязательно должен отдать ответ "YES" в случае успешной обработки.
Например:
die('YES');

Параметры которые мы отправляем:
Параметр Тип Описание
shop int ID Вашего магазина
invoice_id UUID ID заказа в нашей системе
order_id string Идентификатор заказа в Вашей системе
sum float Сумма заказа
email string Email покупателя
sign string Подпись заказа (SHA256 Хеш). Методика формирования подписи
methodstringКодовое название платежной системы (см. способы оплаты)
descstring min: 1 max: 512Описание заказа
us_keystring min: 1 max: 2056Дополнительные параметры с префиксом us_ переданные в форму оплаты


Пример обработчика на PHP

<?php
$merchant_id = '11111'; // ID магазина
$merchant_secret = 'xxx'; // секретный ключ из настроек магазина

$sum=$_REQUEST['sum']; // сумма оплаты
$email=$_REQUEST['email']; // email плательщика

$sign = hash('sha256', implode(':', [$merchant_id, $_REQUEST['sum'], $merchant_secret, $_REQUEST['email']]));

if ($sign != $_REQUEST['SIGN']) {
die('wrong sign');
}
//Так же, рекомендуется добавить проверку на сумму платежа и не была ли эта заявка уже оплачена или отменена
//Оплата прошла успешно, можно проводить операцию.
die('YES');
>>


Редирект клиента с формы оплаты

Редирект с формы оплаты на Ваши URL Успеха и Неудачи выполняется GET запросом с параметрами:

Параметр Тип Описание
email * string Email покупателя
sum * float Сумма к оплате (Если в сумме есть копейки, то отправляйте их с разделителем "." Пример: 100.18)


Методы оплаты

На данной странице указаны допустимые кодовые названия методов. Доступные методы для Вас можно найти в личном кабинете

Кодовое название Название
card На карту Сбербанка
sbp СБП
bc Банковской картой
yoomoney Yoomoney