Как создать возвращаемую страницу с помощью WorldPay?
Документы для WorldPay мне очень трудно понять после чтения и повторного чтения их часами. (Фактически, многие из документов дали мне неправильный URL-адрес Live, и мне пришлось искать в Интернете и попробовать что-то с пробной/ошибкой, чтобы найти, например, 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 в сообщении формы, чтобы мы предложили странице результатов обмениваться заголовком и сделать мета-перенаправление обратно на страницу на нашем сайте. Я попросил пример, и он сказал, что его нет. Все, что он мог сделать, это указать мне на эту запутанную документацию, которая на самом деле не описывает это вообще. (Я не виноват в технической поддержке парня - он просто делает свою работу со слабыми инструментами, которые он дал.)
Ответы
Ответ 1
Проведя 3-4 дня и прочитав всю запутанную и плохую документацию Worldpay, я как-то нашел, как вернуться на какую-то страницу и обработать ответ, возвращенный Worldpay. Я хотел вставить запись в базу данных с информацией о транзакции. Поэтому я искал решение. Ну, вот решение, которое сработало для меня:
- войдите в Worldpay, откройте нужную установку для редактирования.
- Отметьте "Включить платеж"?
- Предоставьте "URL-адрес ответа на платеж" на странице, которая будет получать/обрабатывать данные POST из worldpay.
- Введите тот же URL-адрес в "URL-адрес перенаправления покупателя"
- Отметьте "Включена кнопка перенаправления покупателя"
- Отметьте "Включить ответ покупателя"
- Если вы используете print_r ($ _ POST) (для пользователей php) по URL-адресу, указанному в "URL-адресе платежа", вы можете увидеть все данные, возвращенные Worldpay.
- После обработки вы можете использовать метаобновление, чтобы перенаправить пользователя на какую-либо другую страницу, или вы можете распечатать сообщение "спасибо" пользователю на той же странице.
Я знаю, что эта тема 1+ года, но если кто-то найдет это полезным, я отправлю свое решение здесь.
Изменить: Руководство по реагированию на платеж WorldPay
Изменить: вот скриншот моих настроек, которые работали для меня
![screenshot of my settings]()
Ответ 2
Может полностью сочувствовать, это было немного кошмаром, чтобы настроить меня тоже. Я раньше не использовал параметр 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
для некоторой ценной загрузки - плохая идея.
Проверьте эти страницы, они наиболее полезны в руководстве по настройке:
Я надеюсь, что это помогло, если у вас есть какие-либо вопросы, просто добавьте комментарий. Удачи!
Ответ 3
Редактирование resultY.html не является строго необходимым, вы можете пропустить с помощью редактора платежных страниц, используя функцию "Отзыв платежа".
В настройках установки укажите URL-адрес script на вашем сервере, и WorldPay выполнит следующие параметры после того, как платеж будет разрешен (или покупатель нажимает кнопку Отмена на странице платежа):
http://www.worldpay.com/support/kb/bg/paymentresponse/pr5201.html
Если вы также включите параметр "Включить ответ покупателя", WorldPay загрузит любой HTML script указанные вами выходы и будет использовать это как страницу результатов (размещенную на своем собственном сервере). (Если вы хотите, чтобы все изображения размещались надежно, их нужно будет загружать в Редактор платежных страниц)
Это позволяет вам создавать страницу с динамическими результатами без использования resultY.html(OSCommerce и другие тележки для покупок используют этот метод для настройки страницы результатов)
Я считаю, что нет проблем с использованием обновления META на вашей странице результатов, если он ни в коем случае не вводит в заблуждение (вы должны дать покупателю исход платежа, а не сразу отправить их на свою домашнюю страницу, например).
Ответ 4
@Крис действительно ответил на этот вопрос, но вот что я в итоге сделал. Я действительно использовал параметр MC_success, но установил его так:
<input type="hidden" name="MC_success" value="Click here to return to the merchant: <?= $this->RETURNING_PAGE_ON_MY_SITE ?>">
Затем это требует, чтобы торговец редактировал свою страницу resultY.ml на 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
"Предупреждение. Автоматическое перенаправление с использованием функции ответа покупателя запрещается и приведет к регистрации сбоя и возможной приостановке функции."
Ответ 5
Я думаю, что worldpay в конечном итоге позволит Response Response перенаправить на ваш сайт с помощью обновления Meta.
Все, что вам нужно сделать, - это сгенерировать ответ Html с вашего обратного вызова на стороне сервера.
Ответ 6
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