【发布时间】: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