2015-11-18 60 views
3

我正在使用2co沙箱来测试这样的销售。2checkout总是返回散列不匹配

<form method="post" action="https://sandbox.2checkout.com/checkout/purchase"> 
    <input type="hidden" value="myAccountNumber" name="sid"> 
    <input type="hidden" value="2CO" name="mode"> 
    <input type="hidden" value="product" name="li_0_type"> 
    <input type="hidden" value="Subscription" name="li_0_name"> 
    <input type="hidden" value="50.00" name="li_0_price"> 
    <input type="hidden" value="N" name="li_0_tangible"> 
    <input type="hidden" value="USD" name="currency_code"> 
    <input type="submit" value="Checkout" name="submit"> 
</form> 

而且我有这样的代码来处理retun代码

$hashSecretWord = 'testsecretword'; //copied from sandbox account 
$hashSid = 'myAccountNumber'; 
$hashTotal = '50.00'; 
$hashOrder = $_REQUEST['order_number']; 
echo $_REQUEST['key']."<br>"; 
echo $StringToHash = strtoupper(md5($hashSecretWord . $hashSid . $hashOrder . $hashTotal)); 

网址

http://www.domain.com/ipn.php?middle_initial=&li_0_name=Subscription&sid=mySameAccountNumber 
&key=CBB0C2CA27FDAC5E3316161D829BAF66&state=test&[email protected]&li_0_type=product 
&order_number=9093725652885&currency_code=USD&lang=en&invoice_id=9093725652894&li_0_price=50.00 
&total=50.00&credit_card_processed=Y&zip=0000&li_0_quantity=1&cart_weight=0&fixed=Y 
&submit=Checkout //then other buyer information 

但它们是完全不同的,我得到了沙箱散失配误差

回答

3

你应该使用'1'而不是像这样的$ hashOrder:

$StringToHash = strtoupper(md5($hashSecretWord . $hashSid . 1 . $hashTotal)); 
0

我更改TwocheckoutReturn.php类以使其还可以用于发送相对于@TooCool的sendbox回答。

替换:

$hashOrder = $params['order_number']; 

有了:

$hashOrder = self::$sandbox ? '1' : $params['order_number']; 

编辑类后,您将不再需要任何时间手动更改参数,只需设置沙箱true在初始化过程,它会自动工作。

Twocheckout::sandbox(true);