【问题标题】:Make return URL for getting a response from bank/paymentgateway制作返回 URL 以从银行/支付网关获取响应
【发布时间】:2013-11-17 09:43:08
【问题描述】:

我需要创建一个返回 url,我已将其提供给支付网关,他们将在其中发布其响应参数:

status
customerReferenceNo    
referenceNo
merchantId
amount
checkSum

到我给出的 URL。我想要的只是一个可以接受这些参数并将它们存储到数据库的 HTML 页面,数据库部分我可以做到。

但是接受它们的值的 php 代码,我不能这样做。我不知道他们使用的是 POST 还是 GET:

status-4N
customerReferenceNo    -  30An
referenceNo  - 32 AN
merchantId  - 10AN
amount  - 9.2AN
checkSum - 64AN

这是他们在文档中给出的参数,他们也给出了各自的字段规范(我不知道字段规范是什么)。

状态“0”表示交易成功,如果为负值,则交易失败。

 <?php
    require("./connect.php");

    if (count($_GET)==0 && count($_POST)==0)
    {  
    ?> 
         <h1 style="font-weight:bold; font-family:'RobotoThin' align='center';">ERROR. NO DATA FOUND</h1>
    <?php
    }
    else
    {

        if($_SERVER['REQUEST_METHOD']=='POST')
        {

         $status    = $_REQUEST['Status'];
         $essrefno= $_REQUEST['TransactionId'];
         $ref_no= $_REQUEST['ReferenceNo']; 

         $sql = "update `tablename` set `ess_ref_no`= '$essrefno',status='$status' where ref_no ='$ref_no'";

         mysql_query($sql);
         }
         if($_SERVER['REQUEST_METHOD']=='GET')
        {

         $status    = $_REQUEST['Status'];
         $essrefno= $_REQUEST['TransactionId'];
         $ref_no= $_REQUEST['ReferenceNo'];

          //echo $status+$essrefno+$ref_no;
         $sql = "update `tablename` set `ess_ref_no`= '$essrefno',status='$status' where ref_no ='$ref_no'";

         mysql_query($sql);
         }
        //echo $sql;
    ?>
    <?php
        if ($status==0 )
        {
    ?>
            <h1 style="font-weight:normal; font-family:'RobotoThin';">Your transaction is successful and your transaction reference no for any further communication is  <?php echo $ref_no; ?> .</h1>
     <?php
        }
        else
        {
     ?>
            <h1 style="font-weight:normal; font-family:'RobotoThin';">Your transaction failed and your transaction reference no for any further communication is  <?php echo $ref_no; ?>.</h1>
     <?php
        } 
    }
?>

这是我制作的 PHP,但它不工作。此外,我已经为他们提供了 something.html 页面,但我不知道如何使用 JavaScript 或其他东西将这个 PHP 集成到那个 HTML 页面?有人可以帮助我吗?

【问题讨论】:

  • 因为您使用的是_REQUEST,所以它们是POST 还是GET 数据都没有关系。两者都将出现在 _REQUEST 中。不过删除if _SERVER['REQUEST_METHOD'] == 'GET' 位。除此之外,您不能指望我们回答您的问题,因为我们甚至没有您拥有的文档。只做一个 print_r($_REQUEST); 怎么样?看看他们向您发送了什么数据?..
  • 好的。这是 php 文件。但是我给了他们一个 .html 文件来发布他们的回复。如何将此 php 文件集成到 html 中?
  • 付款完成后,付款客户通常会被重定向到您提供给银行的网址。大多数情况下,事务 id 等都在 url 中,这意味着它在 php 中的 $_GET 中。不过,我确实觉得,您缺乏自己实施金融交易的知识,我真的建议您寻求一些帮助来正确执行此操作,否则您以后可能会遇到麻烦..(对于付款,安全性很重要..)。一方面:您的代码对于 sql 注入是开放的。任何人都可以轻松擦除您的整个数据库......真的,向某人寻求帮助......
  • 谢谢。是的:) 但是这个是为了学习目的。实际的实现是由我的前辈完成的,我希望自己使用自己的代码来测试它,但我不能这样做。而且缺乏知识 嗯,我认为人们不会从 A 到 Z 了解某件事。这是人们学习事物的方式;)

标签: php payment-gateway payment-processing


【解决方案1】:

超全局 $_REQUEST 将同时包含 POST 作为 GET 数据,因此如果它们 POST 或 GET 数据,请不要太担心(目前)。

发送var_dump($_REQUEST); 以查看已发布的数据。从那时起应该很容易。

【讨论】:

  • 是的。谢谢你,我会试试这个。但在此之前,我有一个 php 文件。我已经给了他们一个 html 页面作为响应 url。有没有办法我可以添加这个 php html 文件?
猜你喜欢
  • 2012-11-12
  • 1970-01-01
  • 2013-04-13
  • 1970-01-01
  • 1970-01-01
  • 2014-01-03
  • 2018-09-26
  • 2017-08-04
  • 2017-12-28
相关资源
最近更新 更多