Προς το περιεχόμενο

asp vbscript responce from soap web servises


thanasis_gt

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλημέρα φίλοι μου

Θα ήθελα την βοήθεια σας αν γνωρίζει κάποιος πως μπορώ από μια

Xml σελίδα να αποθηκεύσω σε μεταβλητή μια node ώστε μετά να κάνω post σε μια τράπεζα τα δεδομένα της μεταβλητής

Για authentication

Για παράδειγμα παίρνω response από το web services της τράπεζας σωστά και μου δημιουργεί ένα ticket αυτό πρέπει να το στύλο ξανά στη τράπεζα και με άλλα στοιχειά που έχω βάλει στη φόρμα μου ώστε να μπορεί ο πελάτης να συνδεθεί στη τράπεζα για και να κάνει τη πληρωμή του

 

Ελπίζω να έγινα κατανοητός

 

Ευχαριστώ για οποιαδήποτε βοήθεια σας

 

Η xml σελίδα είναι αυτή

 

<?xml version="1.0" encoding="utf-8" ?>

- <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

- <soap:Body>

- <IssueNewTicketResponse xmlns="http://piraeusbank.gr/paycenter/redirection">

- <IssueNewTicketResult>

<ResultCode>0</ResultCode>

<ResultDescription />

<TranTicket>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</TranTicket>

<Timestamp>2011-02-11T09:12:05.562125+02:00</Timestamp>

<MinutesToExpiration>30</MinutesToExpiration>

</IssueNewTicketResult>

</IssueNewTicketResponse>

</soap:Body>

</soap:Envelope>

 

 

Δεν θέλω να την εμφανίζω τη σελίδα αυτή άλλα να γίνετε direct response στη forma μου και να έχω αποθήκευση σε μια μεταβλητή το TranTicket .

Δημοσ.

Κοίτα εδώ:

http://www.w3schools.../xml_parser.asp

 

και εδώ:

http://stackoverflow...asp-xml-parsing

 

Ψάξε στο google για XML parser.

 

Προσωπικά δε κατάλαβα τι ακριβώς κάνει και πως πρέπει να λειτουργεί... Στο παράδειγμά σου λείπουν πολλές πληροφορίες για την επικοινωνία και τη μορφή του ticket αλλά και τον τρόπο που θες να το στείλεις. Έχεις καθόλου κώδικα έτοιμο;

Επίσης που κολλάει το xml με το ticket? Δε βλέπω να το αναφέρεις στο παράδειγμά σου.

 

Επίσης ένα αρχείο xml δεν είναι σελίδα! Είναι ένα αρχείο xml που περιγράφει μια δομή ενός αντικειμένου.

Δημοσ.

Η τραπεζα μου εχει δωσει τα εξης αρχεια .

Τρεχω αυτη την asp σελιδα

 

 

 

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

 

<%

 

sub main()

Response.ContentType = "text/xml"

Dim oXMLHttp

Dim URL

Dim xmlFile

Dim xmlDocRequest

Dim xmlString

Dim xmlSchema

Dim xmlError

 

'Post URL

URL="https://paycenter.piraeusbank.gr/services/tickets/issuer.asmx"

 

'Create Object

Set oXMLHttp = Server.CreateObject("msxml2.ServerXMLHTTP")

 

'XML Sample

xmlFile = Server.MapPath("schemas/ticketingSample.xml")

 

 

 

set xmlDocRequest = newXMLDomFile(xmlFile)

 

xmlString = xmlDocRequest.xml

 

 

Dim xml

oXMLHttp.open "POST", URL, false

oXMLHttp.setTimeouts 3000, 55000, 90000, 90000

oXMLHttp.setRequestHeader "Content-Type", "text/xml"

 

oXMLHttp.send(xmlString)

 

 

set xml=server.createobject("Microsoft.xmldom")

 

xml.async=false

xml.load(oXMLHttp.responsexml)

 

'Print XML

Response.write oxmlhttp.responsetext

 

set oXMLHttp = nothing

 

end sub

 

call main()

 

%>

<%

 

%>

 

και μου φερνει το αποτελεσμα απο το xml - > ticketingSample.xml

 

<?xml version="1.0" encoding="UTF-8"?>

<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">

<SOAP-ENV:Body><IssueNewTicket xmlns="http://piraeusbank.gr/paycenter/redirection">

<Request>

<Username xsi:type="xsd:string">PO238853</Username>

<Password xsi:type="xsd:string">xxxxxxxxxxxxxxxxxxxxxxxxxxx</Password>

<MerchantId xsi:type="xsd:int">xxxx</MerchantId>

<PosId xsi:type="xsd:int">xxxxx</PosId>

<AcquirerId xsi:type="xsd:int">xx</AcquirerId>

<MerchantReference xsi:type="xsd:string">xx</MerchantReference>

<RequestType xsi:type="xsd:string">xx</RequestType>

<ExpirePreauth xsi:type="xsd:int">xx</ExpirePreauth>

<Amount xsi:type="xsd:int">0.01</Amount>

<CurrencyCode xsi:type="xsd:int">xx</CurrencyCode>

<Installments xsi:type="xsd:int">0</Installments>

<Bnpl xsi:type="xsd:int">0</Bnpl>

<Parameters xsi:type="xsd:string"></Parameters>

</Request>

</IssueNewTicket>

</SOAP-ENV:Body></SOAP-ENV:Envelope>

 

επισεις μου εχει δοσει και αυτι την asp σελιδα

 

 

<%

'*******************************************************************************

' newXMLDom (FUNCTION)

'

' PARAMETERS:

' 0 (ByRef) - sXML - String

'

' RETURN VALUE:

' A DOMDocument object

'

' DESCRIPTION:

' Creates and returns a DOMDocument object, which is pre-loaded with the xml

' string sXML

'*******************************************************************************

function newXMLDom(sXML)

dim xmlDoc

set xmlDoc = Server.CreateObject("MSXML2.DOMDocument")

xmlDoc.async = false

xmlDoc.setProperty "SelectionLanguage", "XPath"

 

xmlDoc.LoadXML(sXML)

set newXMLDom = xmlDoc

end function

 

'*******************************************************************************

' newXMLDomFile (FUNCTION)

'

' PARAMETERS:

' 0 (ByRef) - filepath - String

'

' RETURN VALUE:

' A DOMDocument object

'

' DESCRIPTION:

' Creates and returns a DOMDocument object, which is pre-loaded with the xml

' found in the file located at filepath

'*******************************************************************************

function newXMLDomFile(filepath)

dim xmlDoc

set xmlDoc = Server.CreateObject("MSXML2.DOMDocument")

xmlDoc.async = false

xmlDoc.setProperty "SelectionLanguage", "XPath"

 

xmlDoc.Load(filepath)

set newXMLDomFile = xmlDoc

end function

 

 

'*******************************************************************************

' getXMLItem (FUNCTION)

'

' PARAMETERS:

' 0 (ByRef) - xmlDoc - DOMDocument

' 1 (ByRef) - xpathstring - String

' 2 (ByRef) - i - Int

' 3 (ByRef) - nodeName - String

'

' RETURN VALUE:

' A String value

'

' DESCRIPTION:

' Returns the text contained in the XML node 'nodeName', which exists in 'xmlDoc'

' and is a child of the i-th occurrence of the node located at 'xpathstring'

' within 'xmlDoc'

'*******************************************************************************

function getXMLItem(xmlDoc, xpathstring, i, nodeName)

dim anXMLItem

set anXMLItem = xmlDoc.documentElement.selectNodes("//" & xpathstring).Item(i).selectSingleNode(nodeName)

if anXMLItem is nothing then

getXMLItem = ""

else

getXMLItem = anXMLItem.text

end if

end function

 

 

'*******************************************************************************

' getXMLItem2 (FUNCTION)

'

' PARAMETERS:

' 0 (ByRef) - xmlNodes -

' 1 (ByRef) - i - Int

' 2 (ByRef) - nodeName - String

'

' RETURN VALUE:

' A String value

'

' DESCRIPTION:

' Returns the text contained in the XML node 'nodeName', which is a child of the

' i-th node in 'xmlNodes'

'*******************************************************************************

function getXMLItem2(xmlNodes, i, nodeName)

dim anXMLItem

set anXMLItem = xmlNodes.Item(i).selectSingleNode(nodeName)

 

if anXMLItem is nothing then

getXMLItem2 = ""

else

getXMLItem2 = anXMLItem.text

end if

end function

 

 

 

 

'*******************************************************************************

' getXMLItem3 (FUNCTION)

'

' PARAMETERS:

' 0 (ByRef) - xmlNode -

' 1 (ByRef) - nodeName - String

'

' RETURN VALUE:

' A String value

'

' DESCRIPTION:

' Returns the text contained in the XML node 'nodeName', which is a child of the

' node 'xmlNode'

'*******************************************************************************

function getXMLItem3(xmlNode, nodeName)

dim anXMLItem

set anXMLItem = xmlNode.selectSingleNode(nodeName)

 

if anXMLItem is nothing then

getXMLItem3 = ""

else

getXMLItem3 = anXMLItem.text

end if

end function

 

'*******************************************************************************

' xmlNodeText (FUNCTION)

'

' PARAMETERS:

' 0 (ByRef) - xmlDoc - DOMDocument

' 1 (ByRef) - nodeName - String

'

' RETURN VALUE:

' A String value

'

' DESCRIPTION:

' Returns the text contained in the XML node 'nodeName', which exists in

' 'xmlDoc'.

'*******************************************************************************

function xmlNodeText(xmlDoc, nodeName)

dim anXMLItem

set anXMLItem = xmlDoc.selectSingleNode("//" & nodeName)

if anXMLItem is nothing then

xmlNodeText = ""

else

xmlNodeText = anXMLItem.text

end if

end function

 

'*******************************************************************************

' appendXMLItem (FUNCTION)

'

' PARAMETERS:

' 0 (ByRef) - xmlDoc - DOMDocument

' 1 (ByRef) - nodeName - String

' 2 (ByRef) - nodeText - String

' 3 (ByRef) - parentNode - String

' 4 (ByRef) - nodePosition - Integer

'

' RETURN VALUE:

' None

'

' DESCRIPTION:

' Appends a new node into the specified position in 'xmlDoc'

'*******************************************************************************

function appendXMLItem(xmlDoc, nodeName, nodeText, parentNode, nodePosition)

set newElem = xmlDoc.createElement(nodeName)

newElem.text = nodeText

if parentNode = "" then

xmlDoc.documentElement.appendChild newElem

else

xmlDoc.documentElement.getElementsByTagName(parentNode).Item(nodePosition).appendChild newElem

end if

end function

 

function validateSchema(xmlDoc, xmlSchemaName)

 

 

end function

 

function loadVariables (xmlDoc)

'Ãéá êÜèå leaf node êÜíå assign óôçí ìåôáâëçôÞ ìå ôï ßäéï üíïìá. Ïé ìåôáâëçôÝò ðñÝðåé íá Ý÷ïõí äçëùèåß ìå dim.

'íá âÜæïõìå ìðñïóôÜ óôï üíïìá Ýíá ðñüèåìá, ð.÷. 'str'

 

end function

 

%>

Δημοσ.

Ναι νομίζω ότι κατάλαβα. Πρέπει να υλοποιήσεις το xml parser που είπα προηγουμένως και κάθε node να καταλήγει στη φόρμα σου. Μετά θα προσθέτεις κάποιες έξτρα πληροφορίες και θα το στέλνεις πίσω. Σωστά;

 

Από κώδικα δυστυχώς δε μπορώ να σε βοηθήσω γιατί δεν ασχολούμαι με asp αλλά όπως σου είπα ψάξε στο google για "xml parser" δηλαδή κώδικα που θα "αποκρυπτογραφεί" το xml αρχείο ώστε να το βάλεις στη φόρμα σου.

 

Μετά για να φτιάξεις πάλι το νέο xml θα χρησιμοποιήσεις τις συναρτήσεις της τελευταίας σελίδας που πόσταρες και για να τα στείλεις πίσω θα χρησιμοποιήσεις τον κώδικα της πρώτης.

Το πρόβλημα όμως είναι ότι πρέπει να ξέρεις τα ονόματα των νέων κόμβων που θα προσθέσεις γιατί δε μπορείς να βάλεις ότι να ναι γιατί δε θα τα αναγνωρίσει ο αντίστοιχος parser στον σέρβερ που θα τα στείλεις.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...