2模拟账户的付款验证无效

时间:2014-09-25 13:36:49

标签: php paypal payment-gateway payment-processing 2checkout

我在2checkout上有模拟账户。我需要通过2checkout接受在线支付。所以我正在使用模拟账户测试代码。问题是,在模拟账户上,我收到消息,订单处理成功,但当我使用文档在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>

下面是从2checkout官方文档中获取的验证码

<?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;

我总是要传递失败哈希不匹配

2 个答案:

答案 0 :(得分:1)

您的捐赠$hashOrder=1;

但订单号1仅适用于演示销售 如果您的帖子网址如下所示只有$hashOrder=1;可以使用 (https://sandbox.2checkout.com/checkout/purchase' method =&#39; post&#39;&gt;)。

但您使用<form action='https://www.2checkout.com/checkout/purchase' method='post'>。这意味着你的实时销售。 在这种情况下$hashOrder=$_REQUEST['hashOrder'];

我希望这对你有用。

答案 1 :(得分:0)

我认为您的问题是由于您将hashTotal设置为数字,而不是字符串。尝试将该行更改为:

$hashTotal='100.00';