2015-07-13 12 views
0

我正在嘗試使用SagePay。我有一個帳戶,我想使用服務器集成。狀態詳細信息:5068使用sagePay時

我得到的錯誤是狀態詳細信息:5068:此協議版本不支持加密方法。

我正在嘗試創建一個簡單的「立即付款」按鈕,如文檔中所述。由聖人提供的代碼樣本看起來不起作用。

有人能讓我知道爲什麼下面的代碼不工作?感謝

<?php 

require_once ('lib/SagePay.php'); 

$sagePay = new SagePay(); 
$sagePay->setCurrency('BG'); 
$sagePay->setAmount('100'); 
$sagePay->setDescription('Lorem ipsum'); 
$sagePay->setBillingSurname('Mustermann'); 
$sagePay->setBillingFirstnames('Max'); 
$sagePay->setBillingCity('Cologne'); 
$sagePay->setBillingPostCode('50650'); 
$sagePay->setBillingAddress1('Bahnhofstr. 1'); 
$sagePay->setBillingCountry('de'); 
$sagePay->setDeliverySameAsBilling(); 

/* Example of using BasketXML */ 

$xml = new DOMDocument(); 
$basketNode = $xml->createElement("basket"); 
$itemNode = $xml->createElement("item"); 

$descriptionNode = $xml->createElement('description'); 
$descriptionNode->nodeValue = 'First Item Description'; 
$itemNode -> appendChild($descriptionNode); 

$quantityNode = $xml->createElement('quantity'); 
$quantityNode->nodeValue = '1'; 
$itemNode -> appendChild($quantityNode); 

$unitNetAmountNode = $xml->createElement('unitNetAmount'); 
$unitNetAmountNode->nodeValue = '90.00'; 
$itemNode -> appendChild($unitNetAmountNode); 

$unitTaxAmountNode = $xml->createElement('unitTaxAmount'); 
$unitTaxAmountNode->nodeValue = '10.00'; 
$itemNode -> appendChild($unitTaxAmountNode); 

$unitGrossAmountNode = $xml->createElement('unitGrossAmount'); 
$unitGrossAmountNode->nodeValue = '100.00'; 
$itemNode -> appendChild($unitGrossAmountNode); 

$totalGrossAmountNode = $xml->createElement('totalGrossAmount'); 
$totalGrossAmountNode->nodeValue = '100.00'; 
$itemNode -> appendChild($totalGrossAmountNode); 

$basketNode->appendChild($itemNode); 
$xml->appendChild($basketNode); 

$sagePay->setBasketXML($xml->saveHTML()); 



$sagePay->setSuccessURL('https://website.co.uk/page.html'); 
$sagePay->setFailureURL('https://website.co.uk/page.html'); 
?> 

<form method="POST" id="SagePayForm" action="https://test.sagepay.com/gateway/service/vspform-register.vsp"> 
    <input type="hidden" name="VPSProtocol" value= "3.00"> 
    <input type="hidden" name="TxType" value= "PAYMENT"> 
    <input type="hidden" name="Vendor" value= "vendorname here"> 
    <input type="hidden" name="Crypt" value= "<?php echo $sagePay->getCrypt(); ?>"> 
    <input type="submit" value="continue to SagePay"> 
</form> 

回答

0

幾件事情要檢查:

  1. 確保您使用的地穴場AES加密
  2. 當通過發送隱窩賢者收費,確保它的前綴是「@」
  3. 請確保您的AES不是Base64編碼的字符串後,您有AES加密它(在這方面的協議文件有點誤導) [更新]:4.您實際上使用表格集成方法...
0

感謝您對此的幫助。

這是加密方法的問題。最終爲我工作的代碼是這樣的一個:

https://github.com/tolzhabayev/sagepayForm-php/blob/master/lib/SagePay.php

我的表單按鈕是這樣的:

<form method="POST" id="SagePayForm" action="https://test.sagepay.com/gateway/service/vspform-register.vsp"> 
<input type="hidden" name="VPSProtocol" value= "3.00"> 
<input type="hidden" name="TxType" value= "PAYMENT"> 
<input type="hidden" name="Vendor" value= "vendornamehere"> 
<input type="hidden" name="Crypt" value= "<?php echo $sagePay->getCrypt(); ?>"> 
<input type="submit" value="continue to SagePay"> 
</form>