2015-02-07 1 views
2

Я пытаюсь добавить платежный шлюз SagePay формы Intergration в классическом ASP. У меня есть рабочая версия PHP, которую я получил от SO. Я перевел его в VBSCRIPT, все работает нормально, но шифрование.Форма SagePay - Классический ASP - Поле валюты отсутствует с помощью rijndael.asp

Я использую все те же входы, что и PHP-скрипт, чтобы Cryptstring была точно такой же, как и Cryptstring PHP, прежде чем она будет зашифрована.

Я скачал и используя includes.asp файлы Rijndael.asp & найти здесь: Encrypting Crypt field using Classic ASP for SagePay Form Integration

Но я продолжаю получать следующее сообщение об ошибке:

 
Status: MALFORMED 
Status Detail: 3045 : The Currency field is missing. 

Cryptstring: VendorTxCode=542534345&ReferrerID=&Amount=200.00&Currency=GBP 
&Description=Lorem ipsum&SuccessURL=http://www.testserver.co.uk/sagepaytest/success.php 
&FailureURL=https://www.yoururl.org/fail.php&CustomerName=&CustomerEMail=&VendorEMail= 
&SendEMail=&eMailMessage=&BillingSurname=Mustermann&BillingFirstnames=Max 
&BillingAddress1=Bahnhofstr. 1&BillingAddress2=&BillingCity=Cologne&BillingPostCode=50650 
&BillingCountry=DE&BillingState=&BillingPhone=&DeliverySurname=Mustermann 
&DeliveryFirstnames=Max&DeliveryAddress1=Bahnhofstr. 1&DeliveryAddress2= 
&DeliveryCity=Cologne&DeliveryPostCode=50650&DeliveryCountry=DE&DeliveryState= 
&DeliveryPhone=&Basket=&AllowGiftAid=&ApplyAVSCV2=&Apply3DSecure=&BillingAgreement= 
&BasketXML=&CustomerXML=&SurchargeXML=&VendorData=&ReferrerID=&Language=&Website= 

Я попытался вручную добавлять определенное поля в строку склепа, я попытался GET перейти на страницу без фильтра, чтобы просмотреть полный вывод.

Мой пароль для шифрования верен, я дважды и тройной проверил его. Его введен в файл includes.php.


index.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> 

<!-- #include file="classes/includes.asp" --> 

<!-- #include file="classes/sagepay.asp" --> 

<% Set objSagePay=new SagePay %> 

<% objSagePay.setCurrency("GBP") %> 
<% objSagePay.setAmount(200) %> 
<% objSagePay.setDescription("Lorem ipsum") %> 
<% objSagePay.setBillingSurname("Mustermann") %> 
<% objSagePay.setBillingFirstnames("Max") %> 
<% objSagePay.setBillingCity("Cologne") %> 
<% objSagePay.setBillingPostCode("50650") %> 
<% objSagePay.setBillingAddress1("Bahnhofstr. 1") %> 
<% objSagePay.setBillingCountry("de") %> 
<% objSagePay.setDeliverySameAsBilling() %> 

<% objSagePay.setSuccessURL("http://www.testserver.co.uk/sagepaytest/success.php") %> 
<% objSagePay.setFailureURL("https://www.yoururl.org/fail.php") %> 

<% Crypt=objSagePay.getCrypt() %> 
<%= Crypt %> 

<div id="content"> 
    <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"> 
    <input type="hidden" name="Crypt" value= "<%= objSagePay.getCrypt() %>"> 
    <input type="submit" value="continue to SagePay"> 
</form> 

Любое руководство будет оценено.

+0

Я также пробовал пример склепа SagePay, используя те же данные и пароль, и он вызывает полный CryptString. Я недостаточно опытен, чтобы попытаться проанализировать rijndael.asp –

ответ

4

Я в одной лодке. Я могу зашифровать и расшифровать совершенно точно с теми же результатами, но когда он передается в Sagepay, я получаю ошибку - поле «Валюта» отсутствует.

Обновление: мне удалась эта ошибка. Убедитесь, что в «includes.asp», что вы измените существующую строку:

strEncryptionPassword="mcAX65PTadrrsKQ3" 

включить пароль, который находится в вашем исходном файле SagePay «includes.asp». Не используйте пароль по умолчанию, который поставляется со ссылкой для загрузки в вашем сообщении.

 Смежные вопросы

  • Нет связанных вопросов^_^