Оплата на сайте через мерчант на завершающем этапе

2 Января 2015 23:26

Каждая успешная или неуспешная операция оплаты товара или услуги на сайте через Мерчант, как известно, заканчивается отображением соответствующей страницы - "Success.php" или "Fail.php". Эти страницы так же, как и Result URL, помещаются на сервере в корне сайта и должны быть указаны в настройках кошелька WebMoney. Мерчант передает данным страницам несколько параметров, связанных с выполнением процедуры платежа, полученных им еще в начале процесса оплаты (например, "id" и "email"). Таким образом, оплата на сайте через Мерчант может быть несколько персонифицирована пользователем на ее заключительном этапе, о чем и пойдет речь далее.

Давайте выведем на экран пользователя сообщение об успешном завершении покупки в таком формате "Вы успешно оплатили товар номер 5. Ссылка отправлена на email@пользователя.com". Для этого нужно создать новый файл с расширением ".php" следующего содержания:

<?php
$text = mb_convert_encoding("Вы успешно оплатили товар номер ", "Windows-1251", "utf-8");
$text1 = mb_convert_encoding("Ссылка отправлена на ", "Windows-1251", "utf-8");
echo "$text $_POST[id]. $text1 $_POST[email]";
?>

; разместить в корневой папке на сервере и указать на него ссылку в графе "Success URL" на странице настроек кошелька. В созданном скрипте ни коим образом не должно содержаться информации относительно самой оплаты товара - только элементы для обработки данных, полученных с Мерчанта, иначе хакеры могут этим воспользоваться. В итоге, нажатием на кнопку "Вернуться к продавцу" или автоматическим перенаправлением покупатель переместится на только что созданную страницу.



С Fail URL все обстоит так же, но в обратную сторону. Следует учесть что текст, находящийся в фигурных скобках кода, следует изменить относительно 3-х случаев неудачного выполнения операции оплаты:

  1. Во время проведения оплаты покупатель нажал "От платежа отказываюсь".
  2. Денежных средств покупателя не достаточно для выполнения платежной операции.
  3. В Мерчант не поступило ответа "YES" от продавца на отправленную форму предварительного запроса.

Примером Fail-текста в php-странице "Fail.php" может быть такая фраза: "Оплата товара номер... ...завершилась неудачей, по скольку клиент с почтовым адресом... ...отказался от платежа или его денежных средств не достаточно, либо произошла внутренняя ошибка сервера". Деньги с покупателя в любом из представленных выше случаев списаны не будут, сама форма платежного оповещения передается прямиком на Fail URL, а Result URL в операциях не участвует.



По поводу расширенного управления отображением завершения оплаты на сайте через Мерчант также выделю, что параметры, передаваемые на Fail URL, абсолютно аналогичны таковым для Success URL - полный их список можно найти здесь.


Настроив все страницы и приняв успешно тестовый платеж, не забудьте вернуться на веб-страницу настроек кошелька и изменить режим работы на "рабочий". Хочу привести еще несколько важных напутствий для тех, кто решил заняться этим делом:

  • тщательно пересмотрите все варианты взлома, которые возможно применить к вашей системе оплаты и добавьте по необходимости дополнительные скрипты проверки в Result URL;
  • для выполнения заказа используйте ТОЛЬКО Result URL, так как именно он защищен как со стороны вашего сервера, так и со стороны Мерчанта (Success URL и Fail URL защищены только на сервере);
  • подберите для файла страницы Result URL сложное название.

Какой из этапов подключения оплаты на сайте с Мерчантом вызывает у вас наибольшие опасения в плане безопасности?

3 Января 2015 17:09

Spasiba za raboti . Mne ochen nravilas .

3 Сентября 2015 20:59

Всегда пожалуйста)
Последние сообщения:
Мы в социальных сетях!