Создание платежа
Для инициализации платежа посредством единой формы оплаты, вам достаточно направить пользователя по специальному URL, а также передать ряд обязательных для оплаты параметров.
https://unityfunds.ru//pay/?shop_id=ID&pay_id=ид платежа&amount=Сумма&sign=Подпись MD5 || SHA1 || SHA256 || SHA512 || SHA384 || RIPEMD160
Форма оплаты содержит все необходимые данные для оплаты заказа. Передается методом GET на адрес
| Параметр | Примечание | Тип |
|---|---|---|
| shop_id | ID кассы, можно получить в настройках проекта. | Обязательно. |
| amount | Сумма платежа | Обязательно. |
| pay_id | Номер счета. | Обязательно. |
| sign | Подпись платежа. | Обязательно. |
| desc | Комментарий к платежу | Необязательно. |
Подпись для создания платежа формируется путем нахождения MD5 || SHA1 || SHA256 || SHA512 || SHA384 || RIPEMD160 - Хэша
Пример кода на PHP:
==========================MD5=========================================
$sign = md5("ID Магазина:Сумма:публичный ключ:Номер Счета");
==========================SHA256=========================================
$sign = hash('sha256', "ID Магазина:Сумма:публичный ключ:Номер Счета");
==========================SHA1===========================================
$sign = hash('sha1', "ID Магазина:Сумма:публичный ключ:Номер Счета");
==========================SHA384=========================================
$sign = hash('sha384', "ID Магазина:Сумма:публичный ключ:Номер Счета");
==========================SHA512=========================================
$sign = hash('sha512', "ID Магазина:Сумма:публичный ключ:Номер Счета");
==========================RIPEMD160======================================
$sign = hash('ripemd160', "ID Магазина:Сумма:публичный ключ:Номер Счета");
Проверка IP
Рекомендуем так же проверять IP сервера отправляющего Вам информацию, наши IP -
Пример кода на PHP:
function getIP() {
if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
$_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
}
return $_SERVER['REMOTE_ADDR'];
}
if (!in_array(getIP(), array(''))) die("hacking attempt!");
Оповещение о платеже
После инициализации оплаты пользователь переходит на страницу чека, где происходит отслеживание статуса платежа. При получении успешного либо ошибочного статуса пользователь перенаправляется на сайт партнера (поля Fail URL/Success URL в настройках личного кабинета) с POST параметрами:
| Параметр | Примечание |
|---|---|
| sum | Сумма платежа. |
| invoice | Номер счета |
| http_auth_signature | Подпись сгенерированная в MD5 || SHA1 || SHA256 || SHA512 || SHA384 || RIPEMD160 с секретным ключом. |
Пример обработчика платежа
Так же, рекомендуется добавить проверку на сумму платежа и не была ли эта заявка уже оплачена
Пример кода на PHP:
function getIP() {
if(isset($_SERVER['HTTP_X_REAL_IP'])) return $_SERVER['HTTP_X_REAL_IP'];
return $_SERVER['REMOTE_ADDR'];
}
if (!in_array(getIP(), array(''))) die("hacking attempt!");
==========================MD5=========================================
$sign = md5("ID Магазина:Сумма:Секретный ключ:Номер Счета");
==========================SHA256=========================================
$sign = hash('sha256', "ID Магазина:Сумма:Секретный ключ:Номер Счета");
==========================SHA1===========================================
$sign = hash('sha1', "ID Магазина:Сумма:Секретный ключ:Номер Счета");
==========================SHA384=========================================
$sign = hash('sha384', "ID Магазина:Сумма:Секретный ключ:Номер Счета");
==========================SHA512=========================================
$sign = hash('sha512', "ID Магазина:Сумма:Секретный ключ:Номер Счета");
==========================RIPEMD160======================================
$sign = hash('ripemd160', "ID Магазина:Сумма:Секретный ключ:Номер Счета");
if ($sign != $_POST['http_auth_signature']) die('Error signature');