Sagepay错误5068:不支持加密方法(从2.22升级到3.00)经典ASP

时间:2015-10-29 11:26:06

标签: encryption vbscript asp-classic sagepay

我已经查看了关于Sagepay协议从2.22升级到3.00的其他问题的答案。

我想我正在尝试将加密方法从Xor更新为AES,因此3.00协议可以正常工作,但卡在Sagepay错误5068上:此协议不支持加密方法。

我已经尝试过其他人提出的一些问题,这些问题已被提出但尚未归档。

以下是Sage付款文件的摘录,显示了crypt变量的构建方式:

<%
crypt = "VendorTxCode=" & strvendortxcode & "&"
'crypt = crypt & "Amount=1.00&" '& formatnumber(running_total,2) & "&"
crypt = crypt & "Amount=" & formatnumber(running_total,2) & "&"
crypt = crypt & "Currency=GBP&"
crypt = crypt & "Description=Order From Pyrotex Fireworx&"
crypt = crypt & "SuccessURL=http://" & Request.ServerVariables("HTTP_HOST") & "/buyfireworks/success.asp&"
crypt = crypt & "FailureURL=http://" & Request.ServerVariables("HTTP_HOST") & "/buyfireworks/failure.asp&"
crypt = crypt & "CustomerName=" & rs_customer.fields("inv_first_name") & " " & rs_customer.fields("inv_last_name") & "&"
crypt = crypt & "CustomerEMail=" & rs_customer.fields("email") & "&"
crypt = crypt & "VendorEMail=matt.hill@at-u.com&"
crypt = crypt & "BillingSurname=" & rs_customer.fields("inv_last_name") & "&"
crypt = crypt & "BillingFirstnames=" & rs_customer.fields("inv_first_name") & "&"
crypt = crypt & "BillingAddress1=" & rs_customer.fields("inv_address_001") & "&"
crypt = crypt & "BillingAddress2=" & rs_customer.fields("inv_address_002") & "&"        
crypt = crypt & "BillingCity=" & rs_customer.fields("inv_town") & "&"
crypt = crypt & "BillingPostCode=" & rs_customer.fields("inv_postcode") & "&"
crypt = crypt & "BillingCountry=" & "GB" & "&"
crypt = crypt & "BillingPhone=" & rs_customer.fields("inv_telephone") & "&"
crypt = crypt & "DeliverySurname=" & rs_customer.fields("del_last_name") & "&"
crypt = crypt & "DeliveryFirstnames=" & rs_customer.fields("del_first_name") & "&"      
crypt = crypt & "DeliveryAddress1=" & rs_customer.fields("del_address_001") & "&"
crypt = crypt & "DeliveryAddress2=" & rs_customer.fields("del_address_002") & "&"
crypt = crypt & "DeliveryCity=" & rs_customer.fields("del_town") & "&"
crypt = crypt & "DeliveryPostCode=" & rs_customer.fields("del_postcode") & "&"
crypt = crypt & "DeliveryCountry=" & "GB" & "&"
crypt = crypt & "Basket=" & order_description
%>

这是文件中的下一个表单,其中设置了Crypt值:

<form action="<%= gatewayUrl %>" method="post">
    <input type="hidden" name="VPSProtocol" value="3.00">
    <input type="hidden" name="TxType" value="PAYMENT">
    <input type="hidden" name="Vendor" value="companyname">
    <input type="hidden" name="Crypt" value="<%= base64encode(simpleXor(crypt, cryptoPassword)) %>">
    <input type="submit" onclick="SagePayForm.submit();" value="Continue"/>
</form>

0 个答案:

没有答案