我在2checkout上有一个模拟账户。我需要通过2checkout接受在线支付。因此,我正在用演示帐户测试代码。问题是,在demo帐户上,我收到了订单处理成功的消息,但当我在myside上使用文档验证时,总是失败。
以下是在线支付的html代码
<form action='https://www.2checkout.com/checkout/purchase' method='post'>
<input type='hidden' name='sid' value='202351337'>
<input type='hidden' name='quantity' value='1'>
<input type='hidden' name='product_id' value='1'>
<input name='submit' type='submit' value='Buy from 2CO' >
</form>
以下是2核对官方文件的验证码
<?php
print_r($_REQUEST);
$hashSecretWord='james007'; //2Checkout Secret Word
$hashSid=202351337; //2Checkout account number
$hashTotal=100.00; //Sale total to validate against
$hashOrder=1; //2Checkout Order Number
$StringToHash = strtoupper(md5($hashSecretWord . $hashSid . $hashOrder . $hashTotal));
echo "<br/> And StringToHash is $StringToHash <br/>";
if ($StringToHash != $_REQUEST['key'])
{
$result = 'Fail - Hash Mismatch';
}
else
{
$result = 'Success - Hash Matched';
}
echo $result;
我总是发送消息Fail Hash Mismatch
您给出的$hashOrder=1;
但订单号1仅适用于Demo销售如果你的帖子URL如下,那么只有$hashOrder=1;
可以工作(https://sandbox.2checkout.com/checkout/purchase'method='post'>)。
但是你使用CCD_ 3。这意味着你的现场销售。在这种情况下为$hashOrder=$_REQUEST['hashOrder'];
我希望这对你有用。
我认为您的问题是因为您将hashTotal
设置为数字,而不是字符串。尝试将该行更改为:
$hashTotal='100.00';