2014-09-04 3 views
0

전자 상거래 사이트에서 일하고 있습니다. 나는 현명한 결제 게이트웨이를 통합해야합니다. 체크 아웃 할 때 다음 오류가 발생하는 것을 제외하면 모든 것이 잘 작동합니다. 다음 정보 및 나를 사용하는 코드를 살펴보십시오. 3121 : 내가이 코드를 실행하려고하면우리 웹 사이트에서 sage-pay를 통합하려고 시도하는 중에 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> 

이제 문제는 내가 오류 코드 다음있어, 인 DeliveryFirstnames 값이 너무 깁니다. 이 문제를 해결하려면 적절한 해결책을 제공해주십시오.

답변

0

당신이

에 DeliveryAddress 잘못 철자되기 때문에, DeliveryFirstNames이 test

변경보다는 test&DeliverAddress1=123Main Street로 위의 이름을 따기입니다

DeliveryFirstnames=test&DeliverAddress1=123Main Street 

을 보내는 때문에 오류가 생성되는

DeliveryFirstnames=test&DeliveryAddress1=123Main Street