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

Vol*_*ike 22 php worldpay e-commerce

在阅读并重读几个小时之后,我很难理解 WorldPay的文档.(事实上​​,许多文档给了我错误的实时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>
Run Code Online (Sandbox Code Playgroud)

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

www*_*.me 32

在花了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付款响应指南"文档

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

  • 我现在将其设为最佳答案.这是因为您现在可以在WorldPay的自定义响应页面中进行元刷新,以便您可以在自己的服务器上刷新自己的页面.您的屏幕截图和额外链接也是最佳答案. (2认同)

Chr*_*ris 16

可以完全同情,这对我来说也是一个噩梦.我以前没有使用过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>
Run Code Online (Sandbox Code Playgroud)

...这将带领用户使用他们在网址中的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>
Run Code Online (Sandbox Code Playgroud)

在您的resultY.html文件中只包含标记<WPDISPLAY ITEM=MC_myText>.您需要意识到,如果用户查看了付款页面的来源,则所有表单字段都是可见的,因此将有效内容MC_downloadLink下载到某些有价值的下载是一个坏主意.

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

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

  • 绝对是令人费解的.我使用过Worldpay,Barclays ePDQ,Sagepay/Protx和Google Checkout/Wallet,而Worldpay是最糟糕的.他们确实需要改进这一点,因为它必须伤害他们的业务.作为开发人员,我在使用Worldpay之前总是会推荐其他提供商.更少的集成意味着更少的业务,当然? (5认同)
  • 但我知道什么 - 我们都相信银行做正确的事我们不......(!) (2认同)

小智 6

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

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

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

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

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


Joe*_*Joe 6

截至 2020 年,这仍然没有记录,许多链接现在已损坏:(

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

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

<input type="hidden" name="successURL" value="https://www.example.com/thanks/">
Run Code Online (Sandbox Code Playgroud)

我希望它对其他人有帮助。