För att göra koden funktionell med "nya" Paynova:
Justera strPostData enligt tabell 5.1 i manualen.
Efter http_post-anropet ser det lite annorlunda ut. Du får tillbaka en xml-fil, den måste du parsa. Jag är ingen expert på att göra sånt men jag har löst det såhär:
Kod:
set xmldoc = server.Createobject("Microsoft.XMLDOM")
xmldoc.async=false
xmldoc.loadXML(http_response)
set status = xmldoc.selectNodes("//responsemessage")(0)
paynova_status = status.selectSingleNode("paynova_status").text
paynova_substatus = status.selectSingleNode("paynova_substatus").text
paynova_session = status.selectSingleNode("paynova_session").text
set xmldoc = nothing
Sen är det bara att hantera det man fick ut från xml-datan:
Kod:
if paynova_status=1 then
* *' fixa iframe eller popup, använd parametern paynova_session till url:en
elseif paynova_status = -1 then
* *if paynova_substatus = 0 then
* * * *' Stängt pga driftunderhåll
* *elseif .... then
* * * *' ....
* *end if
else
* *' fel...
end if
Sen har du notify-sidan:
Kod:
<!--#include file="include/md5.asp"-->
paynova_status = Request.Form("paynova_status")
paynova_statusmessage = Request.Form("paynova_statusmessage")
merchant_orderid = Request.Form("merchant_orderid")
paynova_transid = Request.Form("paynova_transid")
strChecksumRec = Request.Form("checksum")
checksum = MD5(paynova_status&paynova_statusmessage&merchant_orderid&paynova_transid&secretkey)
if checksum = strChecksumRec then
* *if paynova_status = "1" then
* * * *'betalning genomförd
* *else
* * * *'betalning avbruten
* *end if
* *'Skriv ut resultat: *
* *'<?xml version="1.0" encoding="utf-8" ?>
* *'<responsemessage>
* *' * *<status>1</status>
* *' * *<statusmessage>OK</statusmessage>
* *' * *<neworderid></neworderid>
* *' * *<batchid></batchid>
* *' * *<checksum><%=MD5("1OK"&merchant_orderid&secretkey)%></checksum>
* *'</responsemessage>
else 'fel checksum
* *'Motsvarande xml-reslutat här som ovan, fast med annan statuskod
end if
Ja, du får förstås ta och fixa så att det blir riktiga utskrifter av det jag satte som kommentar