我已经注册了Authorize.net并成功:
一旦事务通过,我无法理解如何实际更新我的数据库。我会搜索哪些条款来解决这个问题?几乎所有的文档都显示了解决方案的一部分,但实际上没有说明放在哪里以及如何接收它。
在我的购物车页面上,我有一个Authorize.net提供的隐藏输入字段列表。我插入了我的金额,描述等。我假设我放了另一个名为“x_po_num”的隐藏字段,并将值设置为数据库中的动态PO#。
是否有办法在Thank You页面上实际检索它,所以我交叉引用数据库并简单地添加“已确认”或其他值?
如何检索发送给Authorize.net的值?
答案 0 :(得分:2)
您获得的数据只是$_POST
数组,您可以var_dump()
查看其中包含的值。
以下是PHP中的示例中继响应脚本:
<?php
// Retrieving and defining Form Data from Post command body from Authorize.Net
$ResponseCode = trim($_POST["x_response_code"]);
$ResponseReasonText = trim($_POST["x_response_reason_text"]);
$ResponseReasonCode = trim($_POST["x_response_reason_code"]);
$AVS = trim($_POST["x_avs_code"]);
$TransID = trim($_POST["x_trans_id"]);
$AuthCode = trim($_POST["x_auth_code"]);
$Amount = trim($_POST["x_amount"]);
?>
<html>
<head>
<title>Transaction Receipt Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body bgcolor="#FFFFFF">
<?php
// Test to see if this is a test transaction.
if ($TransID === 0 && $ResponseCode === 1)
{
// If so, print it to the screen, so we know that the transaction will not be processed.
?>
<table align="center">
<tr>
<th><font size="5" color="red" face="arial">TEST MODE</font></th>
<tr>
<th valign="top"><font size="1" color="black" face="arial">This transaction will <u>NOT</u> be processed because your account is in Test Mode.</font></th>
</tr>
</table>
<?php
}
?>
<br>
<br>
<?php
// Test to see if the transaction resulted in Approvavl, Decline or Error
if ($ResponseCode === 1)
{
?>
<table align="center">
<tr>
<th><font size="3" color="#000000" face="Verdana, Arial, Helvetica, sans-serif">This transaction has been approved.</font></th>
</tr>
</table>
<?php
}
else if ($ResponseCode === 2)
{
?>
<table align="center">
<tr>
<th width="312"><font size="3" color="#000000" face="Verdana, Arial, Helvetica, sans-serif">This transaction has been declined.</font></th>
</tr>
</table>
<?php
}
else if ($ResponseCode === 3)
{
?>
<table align="center">
<tr>
<th colspan="2"><font size="3" color="Red" face="Verdana, Arial, Helvetica, sans-serif">There was an error processing this transaction.</font></th>
</tr>
</table>
<?php
}
?>
<br>
<br>
<table align="center" width="60%">
<tr>
<td align="right" width=175 valign=top><font size="2" color="black" face="arial"><b>Amount:</b></font></td>
<td align="left"><font size="2" color="black" face="arial">$<?php echo $Amount; ?></td>
</tr>
<tr>
<td align="right" width=175 valign=top><font size="2" color="black" face="arial"><b>Transaction ID:</b></font></td><td align="left"><font size="2" color="black" face="arial">
<?php
if ($TransID === 0)
{
echo 'Not Applicable.';
}
else
{
echo $TransID;
}
?>
</td></tr>
<tr>
<td align="right" width=175 valign=top><font size="2" color="black" face="arial"><b>Authorization Code:</b></font></td><td align="left"><font size="2" color="black" face="arial">
<?php
if ($AuthCode === "000000")
{
echo 'Not Applicable.';
}
else
{
echo $AuthCode;
}
?>
</td></tr>
<tr>
<td align="right" width=175 valign=top><font size="2" color="black" face="arial"><b>Response Reason:</b></font></td><td align="left"><font size="2" color="black" face="arial">(<?php echo $ResponseReasonCode; ?>) <?php echo $ResponseReasonText; ?></font><font size="1" color="black" face="arial"></td></tr>
<tr>
<td align="right" width=175 valign=top><font size="2" color="black" face="arial"><b>Address Verification:</b></font></td><td align="left"><font size="2" color="black" face="arial">
<?php
// Turn the AVS code into the corresponding text string.
switch ($AVS)
{
case "A":
echo "Address (Street) matches, ZIP does not.";
break;
case "B":
echo "Address Information Not Provided for AVS Check.";
break;
case "C":
echo "Street address and Postal Code not verified for international transaction due to incompatible formats. (Acquirer sent both street address and Postal Code.)";
break;
case "D":
echo "International Transaction: Street address and Postal Code match.";
break;
case "E":
echo "AVS Error.";
break;
case "G":
echo "Non U.S. Card Issuing Bank.";
break;
case "N":
echo "No Match on Address (Street) or ZIP.";
break;
case "P":
echo "AVS not applicable for this transaction.";
break;
case "R":
echo "Retry. System unavailable or timed out.";
break;
case "S":
echo "Service not supported by issuer.";
break;
case "U":
echo "Address information is unavailable.";
break;
case "W":
echo "9 digit ZIP matches, Address (Street) does not.";
break;
case "X":
echo "Address (Street) and 9 digit ZIP match.";
break;
case "Y":
echo "Address (Street) and 5 digit ZIP match.";
break;
case "Z":
echo "5 digit ZIP matches, Address (Street) does not.";
break;
default:
echo "The address verification system returned an unknown value.";
break;
}
?>
</td>
</tr>
</table>
</body>
</html>
您也可以使用Silent Post。这是一个PHP tutorial,展示了如何使用它。