【问题标题】:Accepting parameters using $_REQUEST使用 $_REQUEST 接受参数
【发布时间】:2013-11-19 09:17:00
【问题描述】:

我有一个 php 用于接受一些参数(status、referenceNo、customerReferenceNo、merchentId、amount、checkSum)。

https://cellpay.essecom.com/PGCCDCToken/TokenPayment.jsp?merchantId=xxxxxx&data=GyT5Sdoc5yUq1448sdsrva0KdhzI%2BprFmbZt8tAcpSfEWNUED%2BsHPf0yGl7bCn%2B%2FWE37yTWve6r4IBpaQWvFWF1ereC5mi6QPcLaYtX9PyvR%2F4LDhcKAK9EauYNGFkBy3lHy4ZLdZELjf5YERUS6i7AlRvGZCzLj0BZmnIBKIrIv%2FeHQxxxxxU6miaurjw%2BuNab%2BQkD0%2FJ4Fy%2FjRb7mr%2F9M7P7BmZwDW2nyNUQmWaKV4Bb3tbB%2BNlKoJRYhCNWOCKSUd1fa543iM3Yz19W6e0BxOq4ufBAMWbxxxxxxxxZEanAK%2BVPkBMiLvFc2mN0xCbw%2FAAvHZGogL5mIvQMHwZVJqtSld9QSJeQOhxxxxxxx8KfI5vHf6epiODYuhBPgTtPX2r9PJRkNimripVwFq0aj%2FJ%2BNyJBdfWH93jKdbSs3NYCSSziVsoHQqGj0mgXcRXOQjZoPaSctcb5VhFEze5azl%2B9BKQ%3D

上面的 url 是我发送一些数据的地方,在验证后,他们将一些参数发送回响应 url,下面的代码是我的 reponse.php 文件的内容,这是我的响应 url。我通过发送相同的参数使用 RESTconsole 检查了我的响应 url,它被注入到我的数据库中。但是我没有从提供者那里得到响应。我的代码有什么问题吗?

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

             $status    = $_REQUEST['status'];
             $ref_no= $_REQUEST['referenceNo'];
             $cust_ref_no= $_REQUEST['customerReferenceNo'];
             $merchantId= $_REQUEST['merchantId'];
             $amount= $_REQUEST['amount'];
             $checkSum= $_REQUEST['checkSum'];
              echo "Status is ".$status;
              echo "<br> Ref no is ".$ref_no;
              echo "<br> Cust Ref No is ".$cust_ref_no;
              echo "<br> Merchant ID is ".$merchantId;
              echo "<br> Amount is ".$amount;
              echo "<br> Checksum is ".$checkSum;
              $sql = "INSERT INTO paymentResponse VALUES('','$status','$ref_no','$cust_ref_no','$merchantId','$amount','$checkSum',now())";
              $result=mysql_query($sql);
              echo "<br>Data insert status: ".mysql_error()."<br>";
            if ($status=='0')
            {
             echo "<br>Your transaction is successful and your transaction reference no for any further communication is ".$ref_no;
            }
            else
            {
                 echo "<br>Your transaction failed and your transaction reference no for any further communication is ".$ref_no;
            }
    ?>

Status is 
Ref no is 
Cust Ref No is 
Merchant ID is 
Amount is 
Checksum is 
Data insert status: Duplicate entry '' for key 'referenceNo'

Your transaction failed and your transaction reference no for any further communication is

这是我在页面中得到的唯一响应,并且 db 值为空

【问题讨论】:

  • 您可以通过执行以下操作来检查 $_REQUEST 包含的内容:echo '&lt;pre&gt;'.print_r($_REQUEST, true).'&lt;/pre&gt;';
  • 如果没问题,检查 $sql 变量 (echo $sql) 并直接在数据库上测试

标签: php payment


【解决方案1】:

数据插入状态:键“referenceNo”的重复条目“”

表示您要在数据库中插入具有相同 referenceNo 的数据,该数据已存在于数据库中。

并且您对该列有限制,不能插入重复的条目。所以你需要尝试新的referenceNo。并且数据没有插入该数据。

您可以通过以下方式调试返回数据的数据:

print_r($_REQUEST);

你会得到什么数据作为回报。

【讨论】:

    猜你喜欢
    • 2017-01-25
    • 2017-05-04
    • 2023-03-23
    • 2021-07-15
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    相关资源
    最近更新 更多