Тестирование подключения к платежной системе ЕДИНЫЙ КОШЕЛЕК (w1.ru) с использованием скрипта эмулятора
Доброго времени суток Вам, читающим эти строки !
У меня в данный момент утро - 11:13.
Сегодня я расскажу Вам как протестировать подключенную к сайту платежную систему если она не имеет
тестового режима платежей.
Эту работу Мы с Вами рассмотрим на готовом уже реализованном примере сделанном для сайта на базе
megainformatic cms groupon
С такой проблемой я столкнулся, когда занимался подключением к платежной системе
ЕДИНЫЙ КОШЕЛЕК.
Зайдём на сайт
megainformatic cms groupon
Нажмём кнопку
Войти и используем для входа следующие данные:
admin
123456
Теперь пошагово рассмотрим что нужно сделать для настройки и проверки подключения к платежной системе
ЕДИНЫЙ КОШЕЛЕК.
1) Сначала в личном кабинете ЕДИНЫЙ КОШЕЛЕК нужно настроить базовые шаги выполнения оплаты.
== настройки личного кабинета ЕДИНЫЙ КОШЕЛЕК (раздел Интернет Магазин) ==
Адрес для оповещений - http://megainformatic.ru/webprojects_cms/megainformatic_cms_groupon/modules/pay/
modules/pay/pay_systems/w1/process/w1.php
Цифровая подпись (ЭЦП) - тип подписи MD5
Остальные настройки выставляются на усмотрение владельца интернет-магазина.
Персональные настройки требуемые для функционирования модуля оплаты ЕДИНЫЙ КОШЕЛЕК нужно корректно прописать в файле
modules/pay/pay_systems/w1/config_w1.php
2) После того, как это сделано в админ-панели сайта входим в раздел УПРАВЛЕНИЕ > НАСТРОЙКИ САЙТА и выставляем тестовый режим
для оплаты (см. более подробно ниже - пункт 3.1)
3) Теперь можно перейти к тестированию оплаты
Тестирование оплаты через эмулирующий скрипт ЕДИНЫЙ КОШЕЛЕК
======================================
По аналогии с тем, как в статье -
Тестирование подключения платежной системы было описано тестирование оплаты через
тестовый сервер робокасса (robokassa_test)
Мы с вами будем тестировать подключение к ЕДИНОМУ КОШЕЛЬКУ.
Отличием, как видите, является то, что у ЕДИНОГО КОШЕЛЬКА нет тестового сервера, поэтому тестировать будем просто через эмулирующий скрипт, который представляет
собой обычные формы, которые мы сами же и будем отправлять.
3.1) Сначала нужно включить тестовый режим оплаты в настройках сайта - это необходимо для корректного обращения из скрипта сайта к реальному серверу ЕДИНОГО КОШЕЛЬКА либо к скрипту эмуляции (в нашем данном примере) - для этого -
заходим в админ-панель сайта и выбираем раздел УПРАВЛЕНИЕ > Настройки сайта
для пункта Тестовый Режим оплаты указываем значение 1
и нажимаем кнопку Сохранить изменения.
После этого можно тестировать подключение ЕДИНЫЙ КОШЕЛЕК в тестовом режиме со скриптом эмулятора.
3.2) скрипт эмулятора - это -
http://megainformatic.ru/webprojects_cms/
megainformatic_cms_groupon/w1_test_payment.php
чтобы сформировать тот или иной шаг выполнения платежа (всего их 3), надо знать следующее:
сумму платежа, которую будем тестировать
id платежа, который тестируем
цп платежа (цифровую подпись)
id будущего платежа можно узнать посмотрев в админке - ПОЛЬЗОВАТЕЛИ > ОПЛАТА.
Т. е. если например
в админке уже сделано 20 платежей, то это будет номер 21
цп можно узнать посмотрев на странице эмулятора сразу после выполнения шага 3.3
3.3) Входим в личный кабинет юзера
(после входа на сайт как суперадмин просто обратитесь к главной странице сайта по адресу -
megainformatic cms groupon),
а затем слева от аватарки кликните пункт ЛИЧНЫЙ КАБИНЕТ
вводим сумму пополнения, например, 120 и жмём кнопку единый кошелек
3.4) Попадем на страницу эмулятора, который просто распечатает на экран все переменные, переданные через POST
После этого можно в админке проверить появление записи о сделанном платеже со статусом no_pay (не оплачен)
3.5) Тестируем вызов STATUS URL (оповещение о платеже) - находясь на странице с адресом
http://megainformatic.ru/webprojects_cms/
megainformatic_cms_groupon/w1_test_payment.php
добавляем в конец адреса параметры, например - ?p=1&a=120.00&id=21&h=UWDvaImaRwxmqnK4wz8WTA%3D%3D
,где p - это тестируемый шаг платежа (от 1 до 3)
a - сумма платежа, которая будет проверяться и
id - тестируемый id (номер) платежа
h - цифровая подпись платежа - в вашем случае должна быть такая, которая была сгенерирована на шаге 3.4
т. е. адресная строка должна выглядеть как -
http://megainformatic.ru/webprojects_cms/
megainformatic_cms_groupon/w1_test_payment.php?p=1&a=120.00&id=21&h=UWDvaImaRwxmqnK4wz8WTA%3D%3D
и нажимаем ENTER чтобы перейти на эту страницу. Далее на открывшейся странице просто жмём кнопку ОТПРАВИТЬ
Попадем на STATUS URL нашего сайта где будет написано WMI_RESULT=OK, что является ответом для сервиса ЕДИНОГО КОШЕЛЬКА.
А в админке данный платеж должен изменить
статус на accept (подтвержден).
3.6) Тестируем Fail URL
в адресной строке браузера набираем -
http://megainformatic.ru/webprojects_cms/
megainformatic_cms_groupon/w1_test_payment.php?p=3
и нажимаем ENTER чтобы перейти на эту страницу. Далее на открывшейся странице просто жмём кнопку SEND
В результате должна отобразиться страница обработки Fail URL - т. е. выдачу ошибки платежа
В админке платеж не меняет своё состояние
3.7) Тестируем Success URL - успешное зачисление платежа
в адресной строке браузера набираем -
http://megainformatic.ru/webprojects_cms/
megainformatic_cms_groupon/w1_test_payment.php?p=2
другие параметры не указываем, т. к. на данном шаге цифровая подпись и прочее не требуется и не проверяется.
и нажимаем ENTER чтобы перейти на эту страницу. Далее на открывшейся странице просто жмём кнопку SEND
В результате должна отобразиться страница обработки Success URL - т. е. успешное завершение платежа (Ваш платеж успешно подтвержден!)
В админке платеж не меняет своё состояние
3.8) Пополнение баланса пользователя проверяется аналогично робокассе - как только
админ сайта убедился, что средства от данного
пользователя действительно пришли на счёт интернет-магазина, он заходит в админку и меняет состояние этого платежа на ok.
При этом баланс пользователя будет пополнен на указанную сумму только один раз.
Защита от случайного повторного пополнения по тому же самому платежу обеспечивается на двух уровнях:
1) Админ не может изменить состояние платежа на иное, если платеж уже зачислен и имеет статус ok.
2) Сервис платежной системы при случайных повторных вызовах STATUS URL не может изменить статус платежа снова на accept,
т. к. при этом проверяется какой статус уже выставлен для платежа. Если выставлен статус accept или ok, то ничего не
происходит.
На этом на сегодня всё :)))))
Если у вас есть необходимость в подключении любой платежной системы к вашему сайту - обращайтесь - здесь как видите было представлено готовое решение и в случае с вашей платежной системой нужно только модифицировать код под неё.
Удачи ВАМ на ниве сайтостроя !!!