如何使用WorldPay创建返回页面设置?

时间:2011-11-22 19:29:52

标签: php e-commerce worldpay

WorldPay are really difficult for me to understand after reading and re-reading them for hours的文档。 (事实上​​,许多文档给了我错误的实时URL,我不得不在网上浏览并尝试使用试用/错误来查找实时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参数,以便我们告诉结果页面交换标题并进行元重定向回到我们网站上的页面。我问了一个例子,他说没有。他所能做的只是指向我confusing documentation并没有真正描述这一点。 (我不会对技术支持人员提出错误 - 他只是用他给出的弱工具来完成他的工作。)

8 个答案:

答案 0 :(得分:32)

在花了3-4天阅读Worldpay的所有令人困惑和糟糕的文档后,我发现如何返回某个页面并处理Worldpay返回的响应。我想在具有交易详情的数据库中插入记录。所以我一直在寻找解决方案。好吧,这是适用于我的解决方案:

  1. 登录Worldpay,打开所需的安装进行编辑
  2. 勾选“启用付款响应?”
  3. 向将从worldpay接收/处理POST数据的页面提供“付款响应URL”。
  4. 在“Shopper redirect url”中输入相同的网址
  5. 勾选“已启用购物者重定向按钮”
  6. 勾选“启用购物者响应”
  7. 如果您在“付款响应网址”中输入的网址上使用print_r($ _ POST)(对于php用户),您可以看到Worldpay返回的所有详细信息。
  8. 处理完毕后,您可以使用元刷新技术将用户重定向到其他页面,或者您可以在同一页面上向用户打印“谢谢”消息。
  9. 我知道这个帖子是1岁以上但是如果有人发现这有用,我会在这里发布我的解决方案。

    修改:"WorldPay Payment Response Guide"文档

    编辑:这是我的设置截图,对我有用 screenshot of my settings

答案 1 :(得分:16)

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

付款成功(或不成功)后,Worldpay会向用户显示HTML页面。这些HTML页面存储在您的Worldpay控制面板中,如果您想自定义它们,您必须在此处上传新文件。交易成功和失败时显示的文件分别为resultY.htmlresultC.html

您需要查看Advanced Customising Guide,并在该指南的右上角搜索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返回我的网站,从中我提取他们的订单详细信息并显示我自己的成功页面。但您可以通过在上面的示例表单中发送额外的帖子字段来创建自己的标签。变量的名称必须以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置于有价值的下载中是一个坏主意。

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

我希望这有一些帮助,如果您有任何问题只需添加评论。祝你好运!!

答案 2 :(得分:6)

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

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

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

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

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

答案 3 :(得分:2)

截至2020年,这仍然是非常没有证件的,现在许多链接已断开:(

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

我通过在表单帖子中添加此额外的表单字段来使其工作,我在许多看似无关的google标签之后找到了它。

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

我希望它可以帮助其他人。

答案 4 :(得分:1)

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

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

答案 5 :(得分: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支付的人员,并且他们应该通过我们产品的管理界面手动将照片发送给客户。

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

最后但并非最不重要的是,请注意我们无法进行自动重定向。事实上,WorldPay有一个严格禁止它的政策,在此页面上显示为红色:

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

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

答案 6 :(得分:0)

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

您无需再摆弄 ResultY 文件-只需在提交页面中指定名称设置为 successUrl 的隐藏字段即可,就像这样:

enter image description here

这可以在查询字符串中包含您喜欢的任何字段。成功提交付款后,您将回到该URL。一些警告:

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

我认为您也许也可以传递 failureURL cancelURL ,但我也无法通过。

答案 7 :(得分:-1)

Worldpay返回网址

非常简单。

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

勾选&#34;启用付款响应?&#34;

提供&#34;付款响应网址&#34;比如http://yourdomain.com/responce.php

在&#34; Shopper重定向网址&#34;中输入相同的网址http://yourdomain.com/responce.php

勾选&#34;启用购物者重定向按钮&#34;

并将responce.php放在根目录

在root

中创建test.txt文件

的file_get_contents(&#39;的test.txt&#39;,$ _邮政);

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