2015-11-18 95 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);