Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHP为支付平台传递信息_Php_Post_Get_Payment Gateway_Payment - Fatal编程技术网

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

通过PHP为支付平台传递信息,php,post,get,payment-gateway,payment,Php,Post,Get,Payment Gateway,Payment,我有一家基于服务的公司和一个完全由Dreamweaver创建的网站。它没有购物车,我们出售的服务也没有完全相同的价格,因此包含购物车是没有意义的 我的银行为我提供了一个支付网关,使支付自动化,并允许客户选择自己的货币,但它是为一个带有购物车或数据库的网站而构建的 因此,我试图找到一个解决方案: 1-允许我询问客户的详细信息 2-要求客户确认他们应支付的金额(需要介于0和10000欧元之间,不允许使用点、COMA或空格,包括2位小数) 3-在单独的页面上确认他们的姓名和表格中填写的金额(他们的终端

我有一家基于服务的公司和一个完全由Dreamweaver创建的网站。它没有购物车,我们出售的服务也没有完全相同的价格,因此包含购物车是没有意义的

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

因此,我试图找到一个解决方案:

1-允许我询问客户的详细信息

2-要求客户确认他们应支付的金额(需要介于0和10000欧元之间,不允许使用点、COMA或空格,包括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>


我会这样做:

  • 用你自己的多步骤表格从头开始(因为你想确认他们的名字和金额)

  • 通过jQueryAjax将表单发布到PHP脚本

  • 在PHP脚本中,验证每个字段。请记住,客户机可以发送任何内容,因此您需要确保他们编写了一个实际金额,例如

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

  • 将此邮寄请求发送到您的银行

  • 阅读他们的回答

  • 处理他们的响应,例如,向jQuery AJAX函数发送一个JSON,其中包含下一步要做什么的信息,例如重定向到哪个页面。在这里,您还可以配置PHP向您发送通知电子邮件

  • 您不必使用AJAX,但通过这种方式,如果您愿意,您可以向您的客户机显示一个很好的“处理…”视图

    您需要完全了解银行请求的所有参数,例如,
    $sha1hhash
    来自何处。如果他们的文档记录不好,那么总会有其他选择,例如:

    • 贝宝:
    • 条纹:

    P说,如果你在经营公司,对PHP来说是新的,你可能会考虑雇佣一个专业人员为你做这件事。这是值得投资的。

    在花了一整天的时间学习PHP之后,我找到了解决问题的方法。由于我在网上找不到任何回答此问题的文档,如果有人有一天需要,我想与大家分享:

    首先,您需要创建一个3步php表单:

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

    第1页:询问到期金额,该金额另存为$charge

    第2页: 在标题中:

    $amount=$_REQUEST['charge'];
    
    正文-显示要支付的金额:

    <?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;
    ?>
    
    
    

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

    @LasVegasCoder您在评论中所说的一切都是不正确的。谢谢您的及时回复。我希望有一个比使用AJAX更简单的解决方案,我不想改变支付平台(PayPal收取巨额佣金…)。其他参数工作正常,我只需要一种方法让客户填写美元金额。但是我认为如果我不能解决这个问题,雇佣某人可能是一个不错的选择。你可以跳过jQueryAjax,使用一个普通的表单提交(提交到你的PHP脚本中)。关键是你在整个过程中有一个中间步骤,这样你就可以让客户指定他们想要的任何金额,你验证它,然后把它发送到银行的API。例如,从一个简单的表单开始,你可以发布到
    payment.php
    。在
    payment.php
    中,使用
    $\u POST
    读取提交的值。对这些值运行您想要的任何验证,然后向您的银行创建POST请求(
    https://hpp.prueba.santanderelavontpvvirtual.es/pay
    )。这里有一个关于如何做最后一点的例子:谢谢你,我要尝试一下,希望这个或你以前的解决方案能奏效!首先,查找XSS。如果你还不知道它是什么,而且你正在处理财务信息,我建议你为这个项目雇佣一个人。