====== Платежная система Uniteller ======
Платежный обработчик Uniteller для HostCMS.
Купить в маркете: http://kad.systems/shop/online-store/basket/uniteller/
===== Установка =====
Внимание! Если вы установили модуль из "Магазина приложений", то пропустите первые 8 пунктов и переходите сразу к редактированию параметров платежного обработчика.
- Добавьте новый способ оплаты
- В разделе администрирования HostCMS перейдите в раздел «Интернет-магазины» выберите ваш магазин и в появившемся окне выберите вкладку «Справочники» — «Платежные системы».
- Наведите курсор на заголовок «Платежная система» и нажмите кнопку «Добавить».
- Укажите название «Uniteller» и выберите валюту «руб.», затем нажмите кнопку «Применить»
- Запомните Код платежной системы
- Выберите «Яндекс Деньги» и нажмите кнопку «Редактировать» (пиктограмма «карандаш»).
- В поле «Обработчик» вставьте код из файла handlerXX.php
- Во вставленном коде замените значение XX в названии класса Shop_Payment_System_HandlerXX на код платежной системы (см. п. 5)
- Установите значение $_shop_idp. В Личном кабинете «боевой» среды этот параметр называется UnitellerPointID и его значение доступно на странице «Точки продажи компании» (пункт меню «Точки продажи») в столбце UnitellerPointID. В Личном кабинете «тестовой» среды этот параметр называется Shop_ID и его значение доступно на странице «Договоры» в столбце «Договор».
- Установите значение $_password — пароль из раздела «Параметры Авторизации» Личного кабинета системы Uniteller.
- Установите флаг тестового режима $_sandbox = true; для тестирования оплаты.
- В разделе администрирования HostCMS перейдите в раздел «Типовые динамические страницы», в группе "Интернет-магазин" выберите "Интернет-магазин корзина".
- В настройки страницы после кода ''$oShop = Core_Entity::factory('Shop', Core_Array::get(Core_Page::instance()->libParams, 'shopId'));
'' вставляем // ------------------------------------------------
// Обработка уведомления об оплате от Uniteller
// ------------------------------------------------
if (Core_Array::getPost('Order_ID') && Core_Array::getPost('Status') && Core_Array::getPost('Signature'))
{
// Получаем ID заказа
$order_id = intval(Core_Array::getRequest('Order_ID'));
$oShop_Order = Core_Entity::factory('Shop_Order')->find($order_id);
if (!is_null($oShop_Order->id))
{
// Вызов обработчика платежной системы
Shop_Payment_System_Handler::factory($oShop_Order->Shop_Payment_System)
->shopOrder($oShop_Order)
->paymentProcessing();
}
}
- В код страницы перед строкой с комментарием "Вывод информации о статусе платежа после его совершения и перенаправления с платежной системы" вставляем код // ------------------------------------------------
// Обработка Uniteller
// ------------------------------------------------
if (Core_Array::getRequest('Order_ID') && Core_Array::getRequest('status'))
{
$_REQUEST['payment'] = Core_Array::getRequest('status');
$_REQUEST['order_id'] = Core_Array::getRequest('Order_ID');
}
{{:public:market:22-07-2015_11-34-51.png|}}
{{:public:market:23-07-2015_10-59-16.png|}}
{{:public:market:23-07-2015_10-59-49.png|}}
===== Тестирование =====
В качестве тестовых, используйте следующие данные:
* Имя Держателя карты — любое значение, например, TESTUSER
* Страна — любое значение
* Город — любое значение
* Почтовый адрес — любое значение
* Номер телефона — любое значение
* Электронная почта — любое значение
* Тип карты — VISA
* Номеркарты — 4000000000002487
* Срок действия — 12/2015
* CVV2 — 123
* Название банка-эмитента — любое значение, например, UCS
* Телефон службы технической поддержки банка — любое значение
{{:public:market:22-07-2015_11-31-28.png|}}
**Сумма заказа** определяет результат оплаты следующим образом:
* Если сумма в пределах 0 <= сумма <= 1000.00 (исключая диапазон 370.00–380.00см. следующий пункт) или 5000.00<сумма, то происходит успешная оплата.
* Если сумма в пределах 370.00 <= сумма < 380.00, то выдаётся ошибка «Просроченная карта»(Your payment has been declined. Expired card).
* Если сумма в пределах 1000.00 < сумма <= 2000.00, то выдаётся ошибка «Недостаточно средств»(Not sufficient funds).
* Если сумма в пределах 2000.00 < сумма <= 3000.00, товыдаётся ошибка «Ваш платеж отклонен. Пожалуйста, проверьте правильность введенной информации по Вашей банковской карте и попробуйте еще раз».
* Если сумма находится в пределах 3000.00 < сумма <= 5000.00, то происходит успешная оплата, но время ответа сервера увеличивается до 110 секунд.
Внимание! Для корректного тестирования, сайт долже быть включен и доступен. Сама корзина должна быть доступна для неавторизованного в клиентской части и в Центре администрирования пользователя.