Как мне создать настройку страницы возврата с WorldPay? - PullRequest
22 голосов
/ 22 ноября 2011

Документы для WorldPay действительно трудно понять, прочитав и перечитав их в течение нескольких часов .(На самом деле, многие из документов дали мне неправильный Live URL, и мне пришлось искать в Интернете и пробовать что-то с пробой / ошибкой, чтобы найти Live URL, например.)

Как мне создать настройку страницы возврата с WorldPay? Под этим я подразумеваю, когда кто-то публикует платеж, а затем платит на сайте WorldPay, WorldPay автоматически перенаправляет покупателя обратно на страницу на моем сайте в случае успеха.Я хочу знать, как это сделать.Я думаю, что я догадался об этом ниже, но не уверен, работает ли он?

<?php ?>
<html><head><title></title></head><body>
<form action="https://secure.wp3.rbsworldpay.com/wcc/purchase" method="post">
    <input type="hidden" name="testMode" value="0">
    <input type="hidden" name="instId" value="<?= $this->INST_ID ?>">
    <input type="hidden" name="cartId" value="<?= $this->CART_ID ?>">
    <input type="hidden" name="amount" value="<?= $this->AMOUNT ?>">
    <input type="hidden" name="currency" value="<?= $this->CURRENCY_CODE ?>">
    <input type="hidden" name="desc" value="Photos">
    <input type="hidden" name="MC_success" value="<?= $this->RETURNING_PAGE_ON_MY_SITE ?>">
    <input type="submit" value="Click here for the secure payment form">
</form>
</body></html>

EDIT : Техническая поддержка WorldPay заявила, что теперь действие должно быть "https://secure.worldpay.com/wcc/purchase" ипараметр MC_success не будет работать. Он посоветовал мне использовать параметр wpdisplay в посте формы, чтобы мы указали странице результатов поменять заголовок и выполнить мета-перенаправление назад на страницу на нашем сайте. Я попросил пример, и онсказал, что его не было. Все, что он мог сделать, это указать мне на эту запутанную документацию , которая на самом деле не описывает это вообще (я не виню парня из службы технической поддержки - он просто делает свою работу сслабые инструменты, которые он дал.)

Ответы [ 6 ]

32 голосов
/ 09 октября 2012

Потратив 3-4 дня и прочитав всю запутанную и плохую документацию Worldpay, я каким-то образом нашел, как вернуться на какую-то страницу и обработать ответ, возвращенный Worldpay.Я хотел вставить запись в базу данных с деталями транзакции.Поэтому я искал решение.Ну, вот решение, которое сработало для меня:

  1. войдите в Worldpay, откройте желаемую установку, чтобы отредактировать
  2. Отметьте галочкой "Ответ на платеж включен"
  3. Укажите «URL ответа на платеж» для страницы, которая будет получать / обрабатывать данные POST от worldpay.
  4. Введите тот же URL в «URL-адрес перенаправления покупателя»
  5. Установите флажок «Кнопка перенаправления покупателя включена»
  6. Установите флажок «Включить ответ покупателя»
  7. ЕслиВы используете print_r ($ _ POST) (для пользователей php) по URL-адресу, указанному в «URL ответа на платеж», вы можете увидеть все детали, возвращенные Worldpay.
  8. После обработки вы можете использовать метод мета-обновления, чтобы перенаправить пользователя на какую-то другую страницу, или вы можете напечатать сообщение "спасибо" пользователю на той же странице.

Я знаю эту веткумне больше 1 года, но если кто-то посчитает это полезным, я публикую свое решение здесь.

Редактировать: "Руководство по платежным системам WorldPay" Документация

Редактировать: Вот скриншот моих настроек, которые мне помогли screenshot of my settings

16 голосов
/ 23 ноября 2011

Полностью сочувствую, это тоже было для меня кошмаром. Я не использовал параметр MC_success прежде, но, насколько я знаю, вы не можете сделать прямое перенаправление, он должен отображать страницу Worldpay после оплаты, но вы можете настроить эту страницу.

Как только платеж будет успешным (или нет), Worldpay покажет пользователю HTML-страницу. Эти HTML-страницы хранятся в вашей панели управления Worldpay, и если вы хотите настроить их, вы должны загрузить новый файл здесь. Файлы, показанные при успешном и неудачном завершении транзакции: resultY.html и resultC.html соответственно.

Вам нужно взглянуть на Расширенное руководство по настройке и найти resultY.html в правом верхнем углу этого руководства, это поможет вам.

В этих файлах Worldpay автоматически заменяет определенные теги, такие как <wpdisplay item=cartId> и <wpdisplay item=banner default="">, на фактические данные. Я хотел бы войти в вашу панель управления Worldpay и скачать файлы, которые она использует в данный момент, а затем настроить оттуда.

В установке, которую я имею, я просто включаю в мою страницу resultY.html строку, подобную следующей ...

<p><a href="http://example.com/worldpay/cartid/<wpdisplay item=cartId>">Redirect back to my shop</a></p>

... который вернет пользователя на мой сайт с его cartId в URL, из которого я извлекаю детали его заказа и показываю собственную страницу успеха. Но вы можете создавать свои собственные теги, отправляя дополнительные поля в приведенной выше форме. Имена переменных должны иметь префикс MC_, но затем вы можете включить их в свой файл resultY.html. Т.е..

<form action="https://secure.wp3.rbsworldpay.com/wcc/purchase" method="post">
    <input type="hidden" name="testMode" value="0">
    <input type="hidden" name="instId" value="<?= $this->INST_ID ?>">
    <input type="hidden" name="cartId" value="<?= $this->CART_ID ?>">
    <input type="hidden" name="amount" value="<?= $this->AMOUNT ?>">
    <input type="hidden" name="currency" value="<?= $this->CURRENCY_CODE ?>">
    <input type="hidden" name="desc" value="Photos">

    <input type="hidden" name="MC_myText" value="This is my custom text">

    <input type="submit" value="Click here for the secure payment form">
</form>

А в ваш resultY.html файл просто включите тег <WPDISPLAY ITEM=MC_myText>. Вы должны понимать, что все ваши поля формы видны пользователю, если они просматривают источник ваших платежных страниц, поэтому ввод действительного MC_downloadLink для некоторой ценной загрузки - плохая идея.

Проверьте эти страницы, они самые полезные в руководстве по настройке:

Я надеюсь, что это помогло, если у вас есть какие-либо вопросы, просто добавьте комментарий. Удачи !!

6 голосов
/ 23 ноября 2011

Редактирование resultY.html не является строго обязательным, вы можете пропустить, используя Редактор страницы платежей, используя функцию «Платежный ответ».

В настройках установки укажите URL-адрес скрипта на вашем сервере и WorldPayПосле авторизации платежа в него будут помещены следующие параметры (или покупатель нажмет кнопку Отмена на странице оплаты): http://www.worldpay.com/support/kb/bg/paymentresponse/pr5201.html

Если вы также включите параметр «Включить ответ покупателя», WorldPay загрузит любойHTML скрипт, который вы указали в качестве выходных данных, и используйте его как страницу результатов (размещенную на их собственном сервере).(Если вы хотите, чтобы какие-либо изображения были размещены надежно, их нужно будет загрузить в Редактор страницы платежей)

Это позволяет создавать динамические страницы результатов без использования resultY.html (OSCommerce и, возможно, других корзин покупок).используйте этот метод для настройки страницы результатов)

Я полагаю, что нет проблем с использованием обновления META на странице результатов, если оно не вводит в заблуждение (вам нужно указать покупателю результат платежа инапример, не сразу отправлять их на домашнюю страницу).

1 голос
/ 08 декабря 2015

Я думаю, что со временем worldpay разрешит Shopper Response перенаправить обратно на ваш сайт через Meta refresh.

Все, что вам нужно сделать, это сгенерировать ответ Html из вашего обратного вызова на стороне сервера.

0 голосов
/ 04 июня 2014

URL возврата Worldpay

это очень просто.

войдите в Worldpay, откройте нужную установку для редактирования.

Установите флажок «Ответ на платеж включен?»

Укажите "URL ответа на платеж", например http://yourdomain.com/responce.php

Введите тот же URL в «URL перенаправления покупателя» http://yourdomain.com/responce.php

Установите флажок «Кнопка перенаправления покупателя включена»

И поместите Responce.php в корневой каталог

создать файл test.txt в корне

file_get_contents ( 'test.txt', $ _ Post);

вы можете получить массив данных post для test.txt

0 голосов
/ 23 ноября 2011

@ Крис действительно ответил на этот вопрос, но вот что я в итоге сделал. Я действительно использовал параметр MC_success, но установил его так:

<input type="hidden" name="MC_success" value="Click here to return to the merchant: <?= $this->RETURNING_PAGE_ON_MY_SITE ?>">

Затем, это требует, чтобы продавец отредактировал свою страницу resultY.html на WorldPay и вставил этот параметр где-то в его разделе тела:

<div><strong><WPDISPLAY ITEM=success></strong></div>

После этого на их странице успешного платежа, размещенной на WorldPay, отобразится что-то вроде следующего:

Нажмите здесь, чтобы вернуться к продавцу: http://example.com/my-success-return-link-here

Теперь не каждый клиент узнает, как это сделать. Поэтому в моем платежном шлюзе, который я строил, я отправил электронное письмо администратору, чтобы кто-то заплатил WorldPay, и что они должны вручную отправить фотографии клиенту через интерфейс администратора нашего продукта.

Кроме того, необходимо опубликовать это по соответствующему URL-адресу действия, которое я исправил в своем исходном сообщении в разделе EDIT выше.

И последнее, но не менее важное: обратите внимание, что мы не можем выполнить автоматическое перенаправление. Фактически, WorldPay имеет политику, строго запрещающую это, которая выделена красным на этой странице:

http://www.worldpay.com/support/kb/bg/paymentresponse/pr5402.html

"Предупреждение: автоматическое перенаправление с использованием функции ответа покупателя запрещено и приведет к регистрации неисправности и возможной приостановке функции."

...