====== Платежная система 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 секунд. Внимание! Для корректного тестирования, сайт долже быть включен и доступен. Сама корзина должна быть доступна для неавторизованного в клиентской части и в Центре администрирования пользователя.