Перейти к содержанию
Форум поддержки пользователей VamShop

Модуль оплаты кредитной карточкой через УПЦ


Рекомендуемые сообщения

Стоит задача добавить в магазин способ оплаты кредитной карточкой через "Украинский процессинговый центр" (https://upc.ua/ru.htm).

Есть ли уже где-то такой модуль?

Если ещё никто с этим не сталкивался, то подскажите как переделать например модуль "assist" под УПЦ

Ссылка на сообщение
Поделиться на другие сайты
  • 9 months later...

Да, получилось!

Во вложении файлы с кодом.

Нужно будет только подправить языковые файлы:

lang/russian/modules/payment/upc.php

lang/ukrainian/modules/payment/upc.php

Подставить свои данные к значениям:

MODULE_PAYMENT_UPC_MERCHANTID

MODULE_PAYMENT_UPC_TERMINALID

MODULE_PAYMENT_UPC_CERTKEY

UPC.zip

Ссылка на сообщение
Поделиться на другие сайты

Если действительно на Украине популярный способ оплаты, могу в магазин по умолчанию добавить.

Добавлять?

Ссылка на сообщение
Поделиться на другие сайты

В любом случае, спасибо koloaty за модуль.

Если будут спрашивать - буду отправлять в эту тему :)

Ссылка на сообщение
Поделиться на другие сайты

из моей практики за все время это первый раз

По-моему, в целом в Украине есть 3 системы оплаты по платёжным картам:

- Украинский процессинговый центр (Райффайзен Банк Аваль)

- Приватбанк

- Partmone ("Райффайзен Банк Аваль", "Укрсоцбанк" и "Финансы и Кредит")

Самым первым появился УПС. Сложно сказать какая система более популярна на данный момент. Точно можно сказать, что в Украине ещё мало магазинов предлагают оплату карточками, но их количество быстро растёт.

Ссылка на сообщение
Поделиться на другие сайты
  • 3 months later...

koloaty, такой вопросик. В админке после установки модуля есть параметр для настройки модуля: "Режим работы с UPC" , есть "Test" и "Production".

в коде includes/modules/payment/upc.php

есть такая строка в ф. process_button:


if (MODULE_PAYMENT_UPC_SHOP_MODE == 'Test') $process_button_string .= vam_draw_hidden_field('DemoResult', 'AS000');
[/code] на сколько я понял, если в админке выбрать режим "Test" то будет добавлено ещё одно скрытое поле, которое передается UPC. Я не нашёл в документации этого параметра(DemoResult), не подскажите ли для чего это значение передавать, какую роль играет, т.п.? Сразу в догонку ещё один вопросик. Там в языковых файлах, в константе "[b]MODULE_PAYMENT_UPC_URL[/b]" вбито:
[code]define('MODULE_PAYMENT_UPC_URL', 'https://secure.upc.ua/go/enter');

а дело в том, что в документации testing.pdf(http://ecommerce.upc.ua/docs/testing.pdf) UPC написано:

п.1 Использование тестовой версии платежного шлюза

Поле того как выполнены работы по программированию интерфейса взаимодействия с платежным сервером, а также была произведена установка и подключение модуля генерации MAC-кода, необходимо:

а) Получить в процессинговом центре URL тестового платежного сервера;

Мне УПЦ прислал в письме URL тестового платежного сервера, но он отличается от того URL какой генерирует модуль в исходном коде HTML, соответственно УПЦ выдает код ошибки 402 (Ошибка в параметрах Acquirer/Merchant).

что сделать посоветуете, закомментировать значение константы MODULE_PAYMENT_UPC_URL, подставить туда URL который мне прислал УПЦ, на время тестирования?

спасибо за внимание.

Ссылка на сообщение
Поделиться на другие сайты

Очень полезный модуль!!!! В своё время отдал много денег, чтобы такой модуль на другую CMS сделать.

Для оплаты картами большинство пользуется LiqPay (Приватбанк), но там есть свои большие минусы.

Система УПЦ хороша тем, что не нужно вводить номера телефонов, писать подтверждения, а сразу ввёл данные карточки и оплатил. Да и условия работы с ними хорошие. Сами посмотрите с кем работают крупнейшие магазины (5ок например)

Ссылка на сообщение
Поделиться на другие сайты

azarik, не знаю как у вас, но я провёл тесты, про которые писалось в документации и результаты не очень хорошие.

Ниже письмо с результатами тестирования, которое отправил в департамент поддержки УПЦ.

Результаты тестирования тестовой версии платёжного шлюза.

Данные торговой системы:

Адрес шлюза : https://secure.upc.ua/ecgtest/enter

MerchantID=XXXXXXX

TerminalID=EXXXXXXX

сертификат торговца: XXXXXXX.crt

URL интернет магазина где проводились тесты http://XXXXX.ukrhosting.com

при оплате картами:

4999999999990011

4999999999990029

4999999999990037

4999999999990045

4999999999990060

4999999999990094

TranCode возвращался правильно в точности как в таблице кодов в документации "Интеграция и тестирование".

При моделировании ситуации:

- "ошибки в параметрах Acquier/Merchant"

- "Ошибка подписи"

- "Сессия браузера устарела"

Проблем не возникло. Возвращались коды ошибок соответствующие документации.

При оплате картами:

4999999999990052

4999999999990078

4999999999990086

4999999999990102

4999999999990110

TranCode возвращался 291, что не соответствует таблице кодов в документации.

Также в ходе тестирования обнаружены следующие проблемы:

- В смоделированной ситуации, убрав какой либо параметр из первичного запроса, чтобы получить TranCode=401, получаю в браузере ошибку 403 (Forbidden. You don't have permission to access /ecgtest/enter on this server."), на странице https://secure.upc.ua/ecgtest/enter.

- Как получить TranCode 501 так и не понял. В документации написано: "...для получения кода ошибки 501 необходимо произвести отмену операции оплаты, нажав на соответствующую клавишу на странице ввода реквизитов карты платежного сервера.". Ни клавиши, ни ссылки не нашёл, отменяющую опреацию.

И самая главная проблема, которая меня больше всего смущает. Не смотря на то, что у меня есть и эти данные сохранены в интерфейсе торговца в разделе терминалы, SUCCESS, FAILURE и NOTIFY URL's редиректит на эти адреса только в некоторых случаях:

TranCode = 000 - редирект на Success и обращение к Nofify URL, то есть всё ОК.

TranCode = 405 - редирект на Failure, но обращения к Nofify URL не происходит.

Всё, в других случаях, из всех получаемых TranCode'ов, кроме 405, не редиректит на Failure URL и нет обращения к NOTIFY URL, а выдает сообщение на странице шлюза, а судя по схеме "логика доставка ответа со стороны шлюза", должно перекидывать на мой Failure URL.

Прошу помощи. С ув. Ростислав.

Спасибо за внимание.

P.S.: Ещё я абсолютно не могу понять зачем в этом модуле отправляются данные в УПЦ DemoResult=AS000 в режиме тестирования модуля, ведь в документации ни слова нет про этот параметр...

Ссылка на сообщение
Поделиться на другие сайты

Короче, разобрался. Если кому интересно...:

Не редиректило обратно в магазин в случае не успешной транзакции потому что в настройках в административном интерфейсе в разделе терминалы надо было указать количество попыток ввода карты = 1

Выдавало код ошибки один и тот же (291) когда должно было выдавать другой TranCode потому что:

Были внесены изменения в авторизацию тестовых карт... Тех.поддержка.

Также, если кому-то нужно, выкладываю файлы для FAILURE и NOTIFY URL

в файле payment_upc_failure.php нужно отредактировать след. строку:

define('ERROR_DEFAULT', 'Причину ошибки определить не удалось. <a href="mailto:staff@catalog.com">Сообщите</a>, пожалуйста, админстрации магазина о проблеме.');
в файле payment_upc_notify.php нужно отредактировать 3 переменных:
	/*
*
* Configuration
*
*/
$notify_file = '/dir/catalog/tmp/upc_notify.log';
$success_url = 'http://catalog.com/checkout_process.php';
$failure_url = 'http://catalog.com/payment_upc_failure.php';[/code]

вопрос к [b]VaM[/b], хотел я перенести константы в языковые файлы, но так и не понял куда именно или как сделать область видимости их в моих файлах :(

upc_failure_notify.zip

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...