通过PHP为支付平台传递信息

通过PHP为支付平台传递信息

问题描述:

我有一个基于服务的公司和完全使用Dreamweaver创建的网站。它没有购物车,也没有我们销售的服务是完全相同的价格,所以包含一个服务是没有意义的。通过PHP为支付平台传递信息

我的银行为我提供了一个支付网关来实现支付自动化,并允许客户选择他们自己的货币,但它是为具有购物车或数据库的网站构建的。

所以我试图找到一个解决方案:

1 - 允许我向为客户详细介绍

2 - 询问客户,以确认他们是由于支付(这需要量在0到10000欧元之间,不允许使用圆点,空格和空格,并且包含2位小数)

3 - 确认他们的姓名和填写在单独页面的表格中的金额(他们的终端没有显示要支付的金额所以我想确认这个给客户)

4 - 将正确的信息,支付终端

5 - 返回到我们的网站,以确认支付已通过

6不见了 - 向我发送一封电子邮件,所有客户端,并且填写的信息该付款已被批准。

这里是银行

<form action="https://hpp.prueba.santanderelavontpvvirtual.es/pay" method="POST"> 
<input type="hidden" name="MERCHANT_ID" value="<?=$merchantid?>"> 
<input type="hidden" name="ORDER_ID" value="<?=$orderid?>"> 
<input type="hidden" name="ACCOUNT" value="<?=$account?>"> 
<input type="hidden" name="CURRENCY" value="<?=$curr?>"> 
<input type="hidden" name="AMOUNT" value="<?=$amount?>"> 
<input type="hidden" name="TIMESTAMP" value="<?=$timestamp?>"> 
<input type="hidden" name="DCC_ENABLE" value="1"> 
<input type="hidden" name="SHA1HASH" value="<?=$sha1hash?>"> 
<input type="hidden" name="HPP_LANG" value="EN"> 
<input type="hidden" name="AUTO_SETTLE_FLAG" value="1"> 
<input type="hidden" name="MERCHANT_RESPONSE_URL" value="tpv-mailer.php"> 
<input type="Submit" value="Pay by credit card on a Secure Website"> 
</form> 

我是新来的PHP提供的代码,银行发过来的文档不清晰,在所有的,所以我一直停留在这个问题上一会儿。

我有表格要求来自客户端的数据认为POST工作和支付系统工作(虽然它只收取相同的金额),但我似乎无法找到代码将客户填入的$金额传递给“ >在不破坏的哈希银行网关。

我想也许通过URL发送该信息,或者创建一个会话。没有人有经验,这一点,并能帮助我吗?

非常感谢你提前!

+0

@LasVegasCoder你在评论中说的一切都是不正确的 –

这就是我将如何去做的:

  1. 从头开始用自己的多步表单(因为你想确认他们的名字和数量)。

  2. 通过jQuery AJAX将表单发布到PHP脚本。

  3. 在您的PHP脚本验证每一个字段。请记住,客户可以发送任何东西,所以你想确保他们写了一个实际的金额例如。

  4. 准备从PHP脚本发送到您银行的API端点的POST请求。使用用户提交的字段(验证它们之后)并生成可能需要的其他字段,例如时间戳和返回URL。

  5. 发送此POST请求到您的银行。

  6. 请阅读他们的回复。

  7. 处理它们的响应,例如,发送一个JSON到你的jQuery AJAX函数,并提供关于下一步做什么的信息,比如要重定向到哪个页面。这也是您可以配置PHP向您发送该通知邮件的地方。

您不必使用AJAX,但通过这样做,您可以根据需要向客户端显示一个很好的“处理...”视图。

您需要完全理解您银行要求的所有参数,例如$sha1hhash来自何处。如果他们有文档差那么总会有另类,例如:

这就是说,如果你正在运行的公司,是新的PHP作为你提到过,你可能想考虑聘请专业人员为你做。这是值得的投资。

+0

感谢您的及时回复。我希望比使用AJAX更简单的解决方案,我不想改变支付平台(PayPal需要很大的佣金...)。其他参数工作正常,我只需要一种方法来让客户真正填写$金额。但我认为,如果我解决不了这个问题,雇用某人可能是一个不错的选择。 – NinilieM

+0

然后您可以跳过jQuery AJAX,并使用正常表单提交(提交给您的PHP脚本)。关键在于您在整个流程中有一个中间步骤,这样您就可以允许客户指定他们想要的任何金额,然后您将其验证,然后将其发送到银行的API。 – Optimae

+0

这是我似乎无法找到如何做中间步骤的东西... – NinilieM

花了整整一天的时间,并试图了解PHP后,我找到了解决我的问题的方法。由于我找不到任何文档在线回答这个问题之前,我想如果有人需要它有一天能分享:

首先,你需要创建一个3步PHP的形式:

  • 第一页一个标准表格,它向我的客户询问信息,过滤并清理它
  • 它重定向到第二页,它充当邮件程序并收集信息。在标题中,它通过电子邮件将收集的信息发送给我,然后它调用付款网关。在正文中,它总结了先前发送的信息并为客户端提供了一个到网关的链接
  • 第三页是网关的响应。它可以让客户知道任何错误或感谢他们的预订,并重新发送一封电子邮件与预订确认。

的一段代码我需要的是:

第1页:在报头 :

$amount=$_REQUEST['charge']; 
询问由于其作为$充电

在第2页的保存量

in body - 显示付款金额:

<?php 
$FIRSTNAME=$_REQUEST['firstname']; 
$LASTNAME=$_REQUEST['lastname']; 
$CHARGE=$_REQUEST['charge']; 
echo <<<TEXT 
<h3 style="text-align:left;padding-left:1em">Hello, $FIRSTNAME $LASTNAME, balance is $amount euros</h3> 
TEXT; 
?> 

支付平台似乎正在工作,现在金额由客户端决定,无需访问数据库。

+0

此代码中存在主要的XSS漏洞。 – ceejayoz

+0

那么我该如何解决呢? – NinilieM

+0

查找XSS,初学者。如果你不知道它是什么,并且你正在处理财务信息,我建议雇用一个人来做这个项目。 – ceejayoz