Classic ASP에 Form Intergration SagePay 지불 게이트웨이를 추가하려고합니다. 나는 SO에서 유래 한 PHP 버전을 가지고있다. 나는 이것을 VBSCRIPT로 번역했는데, 모든 것이 잘 작동하지만 암호화가 된 것처럼 보인다.SagePay 양식 - classic ASP - 통화 필드가 rijndael.asp를 사용하여 누락되었습니다.
PHP 스크립트와 동일한 입력을 모두 사용하므로 암호화되기 전에 Cryptstring이 PHP Cryptstring과 완전히 동일합니다.
내가 다운로드 여기에있는 Rijndael.asp & includes.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=
내가 어떤 추가 수동으로 해봤를 필드를 암호화 문자열에 넣으려면 암호가없는 다른 페이지로 가서 전체 출력을 확인해보십시오.
내 암호화 암호가 정확합니다. 두 번 겹쳐서 확인했습니다. 그것은 includes.php 파일에 입력됩니다. 모든 지침을 감상 할 수있다
<%@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>
index.asp.
같은 데이터와 암호를 사용하여 SagePay 암호문 예제를 시도했지만 완전히 다른 CryptString을 표시합니다. 나는 rijndael.asp를 시도하고 해부하기에 충분한 경험이 없다. –