Подключение к платежному агрегатору Unitpay

Многие люди хотят продавать что-нибудь на сайте, может предоставлять какую-то услугу, а как вы знаете, принимать все способы оплаты очень трудно, тем более в автоматическом режиме. Есть множество платежных агрегаторов, которые содержат в себе все популярные способы оплаты. Вам нужно лишь подключиться к ним, чтобы принимать платежи на своём сайте. В конце урока есть исходники, скачав которые вы можете без проблем настроить оплату на вашем сайте.

Почему именно они?

На самом деле у каждого свой выбор, но на данный момент могу выделить лишь несколько плюсов:

  1. Довольно низкая комиссия.
  2. Можно настроить распределение комиссии.
  3. Популярные способы оплаты.
  4. Простое подключение

Но есть и минус: ужасная техническая поддержка. Хоть вы и редко будете к ним обращаться (а может и никогда не обратитесь), но отдел по работе с партнерами крайне ужасен. В онлайн чате вам не помогут, скажут писать на почту, где вам просто, в большинстве случаев, не ответят.

С чего начать?

Для начала зарегистрируйтесь на сайте и добавьте проект, подтвердите владение сайтом и ожидайте одобрения вашего проекта. Как одобрят, так можно переходить к техническому подключению.

Техническое подключение

Нам понадобится Public Key и Secret Key. Они есть в информации о проекте. Затем создадим файл payment.php в корне сайта и напишем переход на страницу оплаты. Предполагается, что у нас есть таблица в базе данных с историей платежей, в которую мы и будем заносить наш платёж.

Структура таблицы следующая:
id (int) — уникальный номер платежа (счётчик)
uid (int) — ID пользователя (покупателя) в вашем проекте
amount (float) — сумма платежа
created_at (timestamp) — дата создания платежа
paid_at (timestamp) — дата оплаты

Теперь напишем скрипт создания платежа и перехода на страницу оплаты:

<?php $public_key = ""; $secret_key = ""; $uid = ""; #где вы храните ID авторизованного пользователя (например в сессии) $amount = 0; #сумма платежа за товар $desc = "Оплата за товар"; $mysqli = @new mysqli(db_host, db_user, db_password, db_name); if (mysqli_connect_errno()) die("error_connect"); $mysqli->query("SET NAMES 'utf8'");
$mysqli->query("INSERT INTO `payments` (`uid`,`amount`) VALUES ('".$uid."','".$amount."') ");
$id = $mysqli->insert_id;
$sign = md5($amount.$desc.$amount.$secret_key);
?>
<!DOCTYPE html>
<html>
	<head>
		<title>Перенаправление...</title>
		<meta charset="utf-8" />
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
	</head>
    <body>


<form id="payment" action="https://unitpay.ru/pay/<?= $public_key;?>" method="POST">
            <input type="hidden" name="sum" value="<?= $amount;?>" />
            <input type="hidden" name="account" value="<?= $id;?>" />
            <input type="hidden" name="desc" value="<?= $desc;?>" />
            <input type="hidden" name="sign" value="<?= $sign;?>" />
            <input type="hidden" name="hideOrderCost" value="true" />
            <input style="display:none;" id="btn_payment" type="submit" value="Оплатить" />   
        </form>


        <script type="text/javascript">
            $("#payment").submit();
        </script>
    </body>
</html>

Это один файл, не обращайте внимание, что разделено. Сделано это для подсветки синтаксиса для PHP и HTML.

И теперь нам осталось лишь написать скрипт обработчик, который будет предоставлять услугу:

<?php $method = strtolower($_GET['method']); $mysqli = @new mysqli(db_host, db_user, db_password, db_name); if (mysqli_connect_errno()) die("error_connect"); $mysqli->query("SET NAMES 'utf8'");

$payment = $mysqli->query("SELECT * FROM `payments` WHERE `id` = '".intval($_GET['account'])."'");
if (!$payment) $json['error']['message'] = "Указанный номер счёта не найден";
else if ($payment->paid_at > 0) $json['error']['message'] = "Счёт уже оплачен";
else if ($method == 'check' && $params['orderSum'] != $payment->amount) $json['error']['message'] = "Сумма платежа была изменена";
#обязательно нужно проверять валюту, если у вас стоит цена в 100 долларов, 
#то изменят на рубли и вы получите 100 рублей, а оплата будет успешной
else if ($method == 'check' && $params['orderCurrency'] != 'RUB') $json['error']['message'] = "Сумма платежа была изменена";
else if ($method != 'pay' && count($json) == 0) $json['result']['message'] = 'OK';

if ($method == 'pay') {
    /*
        успешное действие
     */
    $json['result']['message'] = 'OK';
}

if (count($json) > 0) echo json_encode($json);
?>

Для тех, кто не хочет читать, могут просто скачать исходники: Скачать

Теперь вы можете принимать платежи в автоматическом режиме, а по возможности и оказывать услугу автоматизировано, вместо того, чтобы тратить своё время.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *