Unitpay: обзор и отзывы о платежном агрегаторе

Examples

These are just some quick examples. Check out the samples in .

Payment integration using UnitPay Form

<?php
include ('../UnitPay.php');

// Project Data
$domain = 'unitpay.money'; // Your working domain: unitpay.money or unitpay.ru
$secretKey  = '9e977d0c0e1bc8f5cc9775a8cc8744f1';
$publicId   = '15155-ae12d';

// My item Info
$itemName = 'Iphone 6 Skin Cover';

// My Order Data
$orderId        = 'a183f94-1434-1e44';
$orderSum       = 900;
$orderDesc      = 'Payment for item "' . $itemName . '"';
$orderCurrency  = 'RUB';

$unitPay = new UnitPay($domain, $secretKey);

$unitPay
    ->setBackUrl('http://domain.com')
    ->setCustomerEmail('customer@domain.com')
    ->setCustomerPhone('79001235555')
    ->setCashItems(array(
       new CashItem($itemName, 1, $orderSum) 
    ));

$redirectUrl = $unitPay->form(
    $publicId,
    $orderSum,
    $orderId,
    $orderDesc,
    $orderCurrency
);

header("Location: " . $redirectUrl);

Payment integration using UnitPay Api

<?php

header('Content-Type: text/html; charset=utf-8');

/**
 * API integration
 *
 * @link https://help.unitpay.ru/article/32-creating-payment-via-api
 * @link https://help.unitpay.money/article/32-creating-payment-via-api
 */

include ('../UnitPay.php');

// Project Data
$domain = 'unitpay.money'; // Your working domain: unitpay.money or unitpay.ru
$projectId  = 1;
$secretKey  = '9e977d0c0e1bc8f5cc9775a8cc8744f1';

// My item Info
$itemName = 'Iphone 6 Skin Cover';

// My Order Data
$orderId        = 'a183f94-1434-1e44';
$orderSum       = 900;
$orderDesc      = 'Payment for item "'.$itemName.'"';
$orderCurrency  = 'RUB';

$unitPay = new UnitPay($domain, $secretKey);

/**
 * Base params: account, desc, sum, currency, projectId, paymentType
 * Additional params:
 *  Qiwi, Mc:
 *      phone
 * alfaClick:
 *      clientId
 *
 * @link https://help.unitpay.ru/article/32-creating-payment-via-api
 * @link https://help.unitpay.money/article/32-creating-payment-via-api
 */
$response = $unitPay->api('initPayment', );

// If need user redirect on Payment Gate
if (isset($response->result->type)
    && $response->result->type == 'redirect') {
    // Url on PaymentGate
    $redirectUrl = $response->result->redirectUrl;
    // Payment ID in Unitpay (you can save it)
    $paymentId = $response->result->paymentId;
    // User redirect
    header("Location: " . $redirectUrl);

// If without redirect (invoice)
} elseif (isset($response->result->type)
    && $response->result->type == 'invoice') {
    // Url on receipt page in Unitpay
    $receiptUrl = $response->result->receiptUrl;
    // Payment ID in Unitpay (you can save it)
    $paymentId = $response->result->paymentId;
    // Invoice Id in Payment Gate (you can save it)
    $invoiceId = $response->result->invoiceId;
    // User redirect
    header("Location: " . $receiptUrl);

// If error during api request
} elseif (isset($response->error->message)) {
    $error = $response->error->message;
    print 'Error: '.$error;
}

Handler sample

<?php

/**
 *  Demo handler for your projects
 *
 */
include ('../UnitPay.php');

// Project Data
$domain = 'unitpay.money'; // Your working domain: unitpay.money or unitpay.ru
$projectId  = 1;
$secretKey  = '9e977d0c0e1bc8f5cc9775a8cc8744f1';

// My item Info
$itemName = 'Iphone 6 Skin Cover';

// My Order Data
$orderId        = 'a183f94-1434-1e44';
$orderSum       = 900;
$orderDesc      = 'Payment for item "' . $itemName . '"';
$orderCurrency  = 'RUB';

$unitPay = new UnitPay($domain, $secretKey);

try {
    // Validate request (check ip address, signature and etc)
    $unitPay->checkHandlerRequest();

    list($method, $params) = array($_GET, $_GET);

    // Very important! Validate request with your order data, before complete order
    if (
        $params != $orderSum ||
        $params != $orderCurrency ||
        $params != $orderId ||
        $params != $projectId
    ) {
        // logging data and throw exception
        throw new InvalidArgumentException('Order validation Error!');
    }
    switch ($method) {
        // Just check order (check server status, check order in DB and etc)
        case 'check':
            echo $unitPay->getSuccessHandlerResponse('Check Success. Ready to pay.');
            break;
        // Method Pay means that the money received
        case 'pay':
            // Please complete order
            echo $unitPay->getSuccessHandlerResponse('Pay Success');
            break;
        // Method Error means that an error has occurred.
        case 'error':
            // Please log error text.
            echo $unitPay->getSuccessHandlerResponse('Error logged');
            break;
    }
// Oops! Something went wrong.
} catch (Exception $e) {
    echo $unitPay->getErrorHandlerResponse($e->getMessage());
}

Яндекс Касса

«Яндекс Касса» — ещё один интегратор от известного IT-гиганта в России. С каждым днем становится все более популярным, что неудивительно.

Unitpay: обзор и отзывы о платежном агрегаторе

Тарифы не сильно отличаются от предыдущих двух интеграторов, минимальная комиссия при приеме платежей с банковских карт составляет 2,8% (при обороте свыше 1 млн. рублей в месяц) или 3,5% (при обороте менее 1 000 000 р.). Правда, стоит отметить, отсутствие абонентской платы и приятный интерфейс личного кабинета.

Зачисление денег на расчётный счет организации или физического лица производится на следующий рабочий день.

Имеется поддержка платежей по QR и с помощью инструмента  «Apple Pay».

Можно взять онлайн-кассу в аренду у партнеров сервиса, что даст соответствие работы с 54-ФЗ.

Ссылка на ресурс: kassa.yandex.ru 

ASSIST

«ASSIST» – сервис приобрёл популярность за счёт того, что их услуги использует компания «Google».

Как и у разобранных ранее сервисов, имеются модули для быстрой интеграции во все известные системы администрирования.

Имеется тестовый режим, позволяющий увидеть, на сколько данный инструмент способен Вам подойти. Тарифы привязаны к месячному обороту и в целом комиссия составляют от 3 до 5%.

Ссылка на веб-ресурс: www.assist.ru

Unitpay: обзор и отзывы о платежном агрегаторе

На этом, конечно список сервисов, осуществляющих возможность приема платежей на сайте, не заканчивается. Имеются ещё такие сервисы, как «Wallet One», «Fondy», «SimplePay», «PayOnline», «ROBOKASSA», «Z-payment», «Интеркасса». В целом их функционал мало чем отличается от разобранных нами ранее сервисов, незначительные различия имеются лишь только в размерах комиссий.

Можно отметить в конце и еще один интересный к рассмотрению факт. Как показывает практика, многие фирмы предпочитают для онлайн-операций через свой сайт обратиться за помощью по настройке и установке к тому банку, в котором у компании есть расчетный счет. Это выгодно, как организации (меньший процент, «все в одном месте»), так и банку (постоянный клиент и проценты с проведенных операций). Единственный минус этого подхода – иногда возможно большее время, требуемое на подключение и заключение договора.

Платежи

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

Тестовые данные:

Параметр Значение
paymentType card (в тестовом режиме поддерживается только card)
account Любая строка из латинских букв и цифр
desc Любая строка из букв и цифр

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

Параметр Значение
currency RUB (в тестовом режиме поддерживается только RUB)

Остальные параметры следует указывать согласно документации.

Успешный ответ. Отличие значений параметров в тестовом режиме:

  Значение Описание
redirectUrl строка Тестовый URL для переадресации пользователя на шлюз платежной платформы. Если платеж не требует переадресации, то данный параметр будет отсутствовать.
receiptUrl строка Тестовый URL для переадресации пользователя на чек платежа.

Предупреждение: в тестовом режиме переданная информация не сохраняется. Поэтому информация по платежу может отличаться от переданных значений при создании платежа. Номер чека платежа и paymentId после оплаты по реквизитам также изменятся.

Тестовые формы

URL, полученный при создании платежа в тестовом режиме, необходим только для тестирования платежа, 3ds-авторизации и вывода чека. Не передавайте такую ссылку пользователям!

Тестовые реквизиты для оплаты картой:

Значение Описание
1234567465831234 Успешный платеж
Любое другое значение Ошибочный платеж

Оплата по подписке

Оплата по подписке доступна только по картам. Чтобы провести тестовую оплату по подписке, добавьте к методу initPayment параметр subscriptionId с тестовым значением.

Тестовые subscriptionId:

Значение Описание
от 1 до 5 Успешный платеж
Любой другой subscriptionId Выдаст ошибку: Подписка не найдена

Информация о платеже

Тестовые paymentId для платежей:

Значение Описание
100301 Платеж в обработке
100303 Успешный платеж
100304 Ошибочный платеж

Используйте paymentId из тестовых ответов, чтобы получить информацию по платежу. 

Внимание: информация по тестовому платежу не сохраняется. Данные полученные в ответе могут отличаться от переданных при создании платежа

Значение purse в тестовом режиме может быть скрыто.

Возврат платежа

Тестовые paymentId для возврата платежа:

Значение Сумма Частичный возврат
12358132134 5000 Поддерживает
383117770 1000 Не поддерживает

Добавьте к запросу необязательный params, чтобы получить различные события возврата платежа (больше или меньше допустимой суммы возврата).

PayMaster

«PayMaster» – универсальный интегратор, обладающий всеми необходимо для принятия и обработки входных платежей функциональными способностями. Имеется и возможность арендовать контрольно-кассовую технику, интегрированную с сервисом, позволяющая удовлетворить требования 54-ФЗ (Федеральному Закону).

Unitpay: обзор и отзывы о платежном агрегаторе

Разработчиками представлено более 120 доступных способов оплаты, среди которых есть с помощью банковских карт Visa/MasterCard/МИР, «QIWI», «Webmoney», «Яндекс Деньги»,  онлайн банками, а также наличными через терминалы.

Комиссия составляет от 1,8% до 7% в зависимости от выбранного тарифа и способа осуществления оплаты.

Имеются специальные модули для быстрой интеграции и установки на любую популярную систему администрирования сайтов, в том числе «WordPress», «Joomla», «Drupal», «UmiCMS», «Simpla», «OpenCart», «ModX», «Magento», «PHPShop», «1С-Битрикс» и прочие менее популярные и известные.

При подключении интегратора потребуется заключить договор.

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

Установка агрегатора займёт не более 15 минут. Имеется грамотная круглосуточная техническая поддержка, которая в случае возникновения сложностей готова оказать оперативную помощь и установить модуль на ваш веб-сайт.

Подключаться к сервису могут, как юридические лица и индивидуальные предприниматели, так и физические лица.

Ещё одним значимым преимуществом компании является наличие лицензии от ЦБ РФ.