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-гиганта в России. С каждым днем становится все более популярным, что неудивительно.
Тарифы не сильно отличаются от предыдущих двух интеграторов, минимальная комиссия при приеме платежей с банковских карт составляет 2,8% (при обороте свыше 1 млн. рублей в месяц) или 3,5% (при обороте менее 1 000 000 р.). Правда, стоит отметить, отсутствие абонентской платы и приятный интерфейс личного кабинета.
Зачисление денег на расчётный счет организации или физического лица производится на следующий рабочий день.
Имеется поддержка платежей по QR и с помощью инструмента «Apple Pay».
Можно взять онлайн-кассу в аренду у партнеров сервиса, что даст соответствие работы с 54-ФЗ.
Ссылка на ресурс: kassa.yandex.ru
ASSIST
«ASSIST» – сервис приобрёл популярность за счёт того, что их услуги использует компания «Google».
Как и у разобранных ранее сервисов, имеются модули для быстрой интеграции во все известные системы администрирования.
Имеется тестовый режим, позволяющий увидеть, на сколько данный инструмент способен Вам подойти. Тарифы привязаны к месячному обороту и в целом комиссия составляют от 3 до 5%.
Ссылка на веб-ресурс: www.assist.ru
На этом, конечно список сервисов, осуществляющих возможность приема платежей на сайте, не заканчивается. Имеются ещё такие сервисы, как «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-ФЗ (Федеральному Закону).
Разработчиками представлено более 120 доступных способов оплаты, среди которых есть с помощью банковских карт Visa/MasterCard/МИР, «QIWI», «Webmoney», «Яндекс Деньги», онлайн банками, а также наличными через терминалы.
Комиссия составляет от 1,8% до 7% в зависимости от выбранного тарифа и способа осуществления оплаты.
Имеются специальные модули для быстрой интеграции и установки на любую популярную систему администрирования сайтов, в том числе «WordPress», «Joomla», «Drupal», «UmiCMS», «Simpla», «OpenCart», «ModX», «Magento», «PHPShop», «1С-Битрикс» и прочие менее популярные и известные.
При подключении интегратора потребуется заключить договор.
Выплаты, принятые от посетителей сайта, денежных средств на банковский счёт владельца интернет-ресурса производятся ежедневно в указанное при заключении двухстороннего договора с сервисом время.
Установка агрегатора займёт не более 15 минут. Имеется грамотная круглосуточная техническая поддержка, которая в случае возникновения сложностей готова оказать оперативную помощь и установить модуль на ваш веб-сайт.
Подключаться к сервису могут, как юридические лица и индивидуальные предприниматели, так и физические лица.
Ещё одним значимым преимуществом компании является наличие лицензии от ЦБ РФ.