User Tools

Site Tools


public:market:uniteller

This is an old revision of the document!


Платежная система Uniteller

Платежный обработчик Uniteller для HostCMS.

Установка

  1. Добавьте новый способ оплаты
  2. В разделе администрирования HostCMS перейдите в раздел «Интернет-магазины» выберите ваш магазин и в появившемся окне выберите вкладку «Справочники» — «Платежные системы».
  3. Наведите курсор на заголовок «Платежная система» и нажмите кнопку «Добавить».
  4. Укажите название «Uniteller» и выберите валюту «руб.», затем нажмите кнопку «Применить»
  5. Запомните Код платежной системы
  6. Выберите «Яндекс Деньги» и нажмите кнопку «Редактировать» (пиктограмма «карандаш»).
  7. В поле «Обработчик» вставьте код из файла handlerXX.php
  8. Во вставленном коде замените значение XX в названии класса Shop_Payment_System_HandlerXX на код платежной системы (см. п. 5)
  9. Установите значение $_shop_idp. В Личном кабинете «боевой» среды этот параметр называется UnitellerPointID и его значение доступно на странице «Точки продажи компании» (пункт меню «Точки продажи») в столбце UnitellerPointID. В Личном кабинете «тестовой» среды этот параметр называется Shop_ID и его значение доступно на странице «Договоры» в столбце «Договор».
  10. Установите значение $_password — пароль из раздела «Параметры Авторизации» Личного кабинета системы Uniteller.
  11. Установите флаг тестового режима $_sandbox = true; для тестирования оплаты.
  12. В разделе администрирования HostCMS перейдите в раздел «Типовые динамические страницы», в группе "Интернет-магазин" выберите "Интернет-магазин корзина".
  13. В настройки страницы после кода $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();
    	}
    }
  14. В код страницы перед строкой с комментарием "Вывод информации о статусе платежа после его совершения и перенаправления с платежной системы" вставляем код
    // ------------------------------------------------
    // Обработка 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');
    }

Тестирование

В качестве тестовых, используйте следующие данные:

  • Имя Держателя карты — любое значение, например, TESTUSER
  • Страна — любое значение
  • Город — любое значение
  • Почтовый адрес — любое значение
  • Номер телефона — любое значение
  • Электронная почта — любое значение
  • Тип карты — VISA
  • Номеркарты — 4000000000002487
  • Срок действия — 12/2015
  • CVV2 — 123
  • Название банка-эмитента — любое значение, например, UCS
  • Телефон службы технической поддержки банка — любое значение

Сумма заказа определяет результат оплаты следующим образом:

  • Если сумма в пределах 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 секунд.

Внимание! Для корректного тестирования, сайт долже быть включен и доступен. Сама корзина должна быть доступна для неавторизованного в клиентской части и в Центре администрирования пользователя.

public/market/uniteller.1437638457.txt.gz · Last modified: 23.07.15 в 11:00 by Артем Куц