2014-09-04 15 views
0

我正在電子商務網站上工作,我必須整合鼠尾草支付支付網關。一切工作正常,除了嘗試結帳時出現以下錯誤。 請看下面的細節和我使用的代碼。現在嘗試在我們的網站上集成鼠尾草支付時出現錯誤3121

<?php 
    $serverLive="https://test.sagepay.com/gateway/service/vspform-register.vsp"; 
$YOUR_VENDOR_LOGIN_NAME = "alpinetravelint"; 
$PAYMENT_CRYPT="VendorTxCode=406227821909&Amount=320.00&Currency=GBP&Description=1ACMEWidget&SuccessURL=http://salentro.com/core/snowtrax/index.php&FailureURL=http://salentro.com/core/snowtrax/login.php&BillingSurname=Smith&BillingFirstnames=John&BillingAddress1=123 Main Street&BillingCity=Anywhere&BillingPostCode=W1A 1BL&BillingCountry=GB&DeliverySurname=Smith&DeliveryFirstnames=test&DeliverAddress1=123Main Street&DeliveryCity=Anywhere&DeliveryPostCode=W1A 1BL&DeliveryCountry=GB"; 
function pkcs5_pad($text, $blocksize) 
{ 
    $pad = $blocksize - (strlen($text) % $blocksize); 
    return $text . str_repeat(chr($pad), $pad); 
} 

function encryptFieldData($input) 
{ 
    $key = "4bBtA2UYvZKry3tb"; 
    $iv = $key; 

    $cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, "", MCRYPT_MODE_CBC, ""); 
    if (mcrypt_generic_init($cipher, $key, $iv) != -1) 
    { 
     $cipherText = mcrypt_generic($cipher,$input); 
     mcrypt_generic_deinit($cipher); 

     $enc = bin2hex($cipherText); 
    } 
    return $enc; 
} 

$str = $PAYMENT_CRYPT; 
$datapadded = pkcs5_pad($str,16); 
$cryptpadded = "@" . encryptFieldData($datapadded); 

?> 
<form action="<?php echo $serverLive ;?>" method="POST" id="SagePayForm" name="SagePayForm"> 
    <input type="hidden" name="VPSProtocol" value="2.23" /> 
    <input type="hidden" name="TxType" value="PAYMENT" /> 
    <input type="hidden" name="Vendor" value="<?php echo $YOUR_VENDOR_LOGIN_NAME ?>" /> 
    <input type="hidden" name="Crypt" value="<?php echo $cryptpadded ?>">  
    <input type="image" src="images/buynow-sagepay.png" /> 
</form> 

,問題是,當我嘗試運行這段代碼,我得到了下面的錯誤代碼: 3121:該DeliveryFirstnames值太長。 請給我一些適當的解決方案來解決這個問題。

回答

0

,因爲您要發送

DeliveryFirstnames=test&DeliverAddress1=123Main Street 

因爲是DeliveryAddress拼寫錯誤,該DeliveryFirstNames正在回升的第一個名字爲test&DeliverAddress1=123Main Street,而不是test

更改上面

正在生成錯誤
DeliveryFirstnames=test&DeliveryAddress1=123Main Street 
相關問題