23

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>

编辑:WorldPay 技术支持人员表示现在必须执行“ https://secure.worldpay.com/wcc/purchase ”操作,并且 MC_success 参数不起作用。他建议我在表单发布中使用 wpdisplay 参数,以便我们告诉结果页面交换标题并执行元重定向回我们网站上的页面。我问了一个例子,他说没有。他所能做的就是向我指出这个根本没有真正描述这一点的令人困惑的文档。(我没有责怪技术支持人员——他只是在使用他提供的弱工具完成他的工作。)

4

8 回答 8

33

在花了 3-4 天阅读了 Worldpay 的所有令人困惑和糟糕的文档之后,我不知何故找到了如何返回某个页面并处理 Worldpay 返回的响应。我想在数据库中插入一条包含交易详细信息的记录。所以我一直在寻找解决方案。好吧,这是对我有用的解决方案:

  1. 登录 Worldpay,打开所需的安装进行编辑
  2. 勾选“启用支付响应?”
  3. 向将接收/处理来自 worldpay 的 POST 数据的页面提供“付款响应 URL”。
  4. 在“购物者重定向网址”中输入相同的网址
  5. 勾选“启用购物者重定向按钮”
  6. 勾选“启用购物者响应”
  7. 如果您在“付款响应 URL”中输入的 url 上使用 print_r($_POST)(对于 php 用户),您可以看到 Worldpay 返回的所有详细信息。
  8. 处理后,您可以使用元刷新技术将用户重定向到其他页面,或者您可以在同一页面上向用户打印“谢谢”消息。

我知道这个线程已有 1 年以上的历史,但如果有人觉得这有帮助,我会在此处发布我的解决方案。

编辑:“WorldPay 支付响应指南”文档

编辑:这是对我有用的设置的屏幕截图 我的设置截图

于 2012-10-09T12:14:34.883 回答
17

完全可以同情,这对我来说也是一场噩梦。我之前没有使用过 MC_success 参数,但据我所知你不能直接重定向,它必须在付款后显示一个 Worldpay 页面,但你可以自定义这个页面。

一旦支付成功(或失败),Worldpay 就会向用户显示一个 HTML 页面。这些 HTML 页面存储在您的 Worldpay 控制面板中,如果您想自定义它们,您必须在此处上传一个新文件。交易成功和失败显示的文件分别是resultY.htmlresultC.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>

...这将使用户在 URL 中使用他们的 cartId 回到我的站点,我从中提取他们的订单详细信息并显示我自己的成功页面。但是您可以通过在上面的示例表单中发送额外的帖子字段来创建自己的标签。变量的名称必须带有前缀MC_,但您可以将它们包含在您的 resultY.html 文件中。IE。

<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对一些有价值的下载设置有效是一个坏主意。

查看这些页面,它们是定制指南中最有用的页面:

我希望这对您有所帮助,如果您有任何问题,请添加评论。祝你好运!!

于 2011-11-22T22:11:37.177 回答
6

编辑 resultY.html 不是绝对必要的,您可以通过使用“付款响应”功能跳过使用付款页面编辑器。

在安装设置中,为您的服务器上的脚本提供一个 URL,一旦付款获得授权(或购物者在付款页面上单击“取消”),WorldPay 将向其发布以下参数: http ://www.worldpay.com/支持/kb/bg/paymentresponse/pr5201.html

如果您还启用“启用购物者响应”设置,WorldPay 将下载您指定的脚本输出的任何 HTML,并将其用作结果页面(托管在他们自己的服务器上)。(如果您希望安全托管任何图像,则需要将它们上传到付款页面编辑器中)

这允许您构建动态结果页面,而无需使用 resultY.html(OSCommerce 和可能其他购物车使用此方法来自定义结果页面)

我相信在您的结果页面上使用 META 刷新没有任何问题,只要它不会误导(例如,您需要向购物者提供付款结果,而不是立即将其发送到您的主页)。

于 2011-11-23T10:00:53.820 回答
3

截至 2020 年,这仍然是非常无证的,现在许多链接都已损坏:(

在完成@www.amitpatil.me 接受的答案后,它仍然对我不起作用。

我通过将这个额外的表单字段添加到表单帖子中使其工作,我在许多看似不相关的谷歌标签之后发现了这一点。

<input type="hidden" name="successURL" value="https://www.example.com/thanks/">

我希望它可以帮助别人。

于 2020-04-01T14:54:23.057 回答
1

我认为 worldpay 最终允许Shopper Response通过 Meta refresh 重定向回您的网站。

您所要做的就是从您的服务器端回调生成 Html 响应。

于 2015-12-08T10:00:03.130 回答
1

我在下面添加了乔的回答-最初我只是对此发表了评论,但现在评论框中的内容太多了。

您不必再摆弄ResultY文件 - 只需在提交页面中指定一个隐藏字段,名称设置为successUrl,如下所示:

在此处输入图像描述

这可以包括查询字符串中您喜欢的任何字段。成功提交付款后,您将返回此 URL。几个警告:

  1. WorldPay 不会将您带回其他 URL。因此,如果(像我一样)您正在本地计算机上开发站点,则必须将更改发布到实时站点以进行测试。
  2. 您会在查询字符串中获得许多其他参数 - 一些有用(付款金额和响应),一些不太有用(一些非常长的参数,称为macmac2,我不知道其含义)。

我认为您也可以传递failureURLcancelURL,但我无法让这些工作。

于 2020-04-25T14:44:44.990 回答
0

@Chris 确实回答了这个问题,但这就是我最终要做的。我确实使用了 MC_success 参数,但设置如下:

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

然后,这需要商家在 WorldPay 上编辑他们的 resultY.html 页面,并在其正文部分的某处插入此参数:

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

然后,这将在 WorldPay 上托管的成功支付响应页面中显示如下内容:

点击这里返回商家:http ://example.com/my-success-return-link-here

现在,并不是每个客户都会知道如何做到这一点。因此,在我正在构建的支付网关中,我通过电子邮件向管理员发送了 WorldPay 付款的信息,并且他们应该通过我们产品的管理界面手动将照片发送给客户。

此外,必须将其发布到正确的操作 URL,我在上面编辑部分的原始帖子中更正了该 URL。

最后但同样重要的是,请注意我们不能进行自动重定向。事实上,WorldPay 有一个政策严格禁止它,在这个页面上用红色标记:

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

“警告:禁止使用购物者响应功能进行自动重定向,这将导致记录失败并可能暂停该功能。”

于 2011-11-22T23:39:50.883 回答
-1

Worldpay 退货网址

这很简单。

登录 Worldpay,打开所需的安装进行编辑。

勾选“启用支付响应?”

提供“付款响应 URL”,例如http://yourdomain.com/responce.php

在“购物者重定向网址” http://yourdomain.com/responce.php中输入相同的网址

勾选“启用购物者重定向按钮”

并将responce.php放在根目录下

在根目录下创建 test.txt 文件

file_get_contents('test.txt',$_Post);

您可以将数据数组发布到 test.txt

于 2014-06-04T07:44:26.310 回答