Dim xmlDoc, xmlDocNode
Dim eWayCOMURL, eWayLogin
Dim m_ResultEwayTrxnStatus 
Dim m_ResultEwayTrxnNumber 
Dim m_ResultEwayTrxnOption1
Dim m_ResultEwayTrxnOption2
Dim m_ResultEwayTrxnOption3 
Dim m_ResultEwayTrxnReference
Dim m_ResultEwayAuthCode
Dim m_ResultEwayReturnAmount
Dim m_ResultEwayTrxnError

    eWayCOMURL="https://www.eway.com.au/gateway/xmltest/TestPage.asp"    
    eWayLogin="87654321"

    Set xmlDoc = wscript.createobject("MSXML2.DOMDocument")
    
    Set xmlDoc.documentElement = XMLCreateNode(xmlDoc, xmlDoc, "ewaygateway", "")
    Set xmlDocNode = XMLCreateNode(xmlDoc, xmlDoc.documentElement, "ewayCustomerID", eWayLogin)
    Set xmlDocNode = XMLCreateNode(xmlDoc, xmlDoc.documentElement, "ewayTotalAmount", 10)
    Set xmlDocNode = XMLCreateNode(xmlDoc, xmlDoc.documentElement, "ewayCustomerFirstName", "FirstName")
    Set xmlDocNode = XMLCreateNode(xmlDoc, xmlDoc.documentElement, "ewayCustomerLastName", "Surname")
    Set xmlDocNode = XMLCreateNode(xmlDoc, xmlDoc.documentElement, "ewayCustomerEmail", "EmailAddress")
    Set xmlDocNode = XMLCreateNode(xmlDoc, xmlDoc.documentElement, "ewayCustomerAddress", "CardHolderAddress")
    Set xmlDocNode = XMLCreateNode(xmlDoc, xmlDoc.documentElement, "ewayCustomerPostcode", "CardHolderPostCode")
    Set xmlDocNode = XMLCreateNode(xmlDoc, xmlDoc.documentElement, "ewayCustomerInvoiceDescription", "TransactionDescription")
    Set xmlDocNode = XMLCreateNode(xmlDoc, xmlDoc.documentElement, "ewayCustomerInvoiceRef", 1)
    Set xmlDocNode = XMLCreateNode(xmlDoc, xmlDoc.documentElement, "ewayCardHoldersName", "CardHolderName")
    Set xmlDocNode = XMLCreateNode(xmlDoc, xmlDoc.documentElement, "ewayCardNumber", "CardNumber")
    Set xmlDocNode = XMLCreateNode(xmlDoc, xmlDoc.documentElement, "ewayCardExpiryMonth", "ExpiryMonth")
    Set xmlDocNode = XMLCreateNode(xmlDoc, xmlDoc.documentElement, "ewayCardExpiryYear", "ExpiryYear")
    Set xmlDocNode = XMLCreateNode(xmlDoc, xmlDoc.documentElement, "ewayTrxnNumber", "TransactionId")
    Set xmlDocNode = XMLCreateNode(xmlDoc, xmlDoc.documentElement, "ewayOption1", "")
    Set xmlDocNode = XMLCreateNode(xmlDoc, xmlDoc.documentElement, "ewayOption2", "")
    Set xmlDocNode = XMLCreateNode(xmlDoc, xmlDoc.documentElement, "ewayOption3", "")
        
    xmlDoc.validateOnParse = True
    If Not xmlDoc.parseError.errorCode = 0 Then wscript.echo "Error Parsing The Outbound XML File"

    On Error Resume Next
    Set xmlHTTP = wscript.createobject("MSXML2.ServerXMLHTTP")
    If Not Err.Number = 0 Then
        Err.Clear
        Set xmlHTTP= wscript.createobject("MSXML2.ServerXMLHTTP.4.0")
    End If
    If Not Err.Number = 0 Then
        Err.Clear
        Set xmlHTTP= wscript.createobject("MSXML2.XMLHTTP")
        If Not Err.Number = 0 Then
            Err.Clear
            Set xmlHTTP= wscript.createobject("MSXML2.XMLHTTP.4.0")
        End If
    End If
        
    If Not Err.Number = 0 Then wscript.echo "Error Creating XML Transmission For eWay Payment Gateway"
    On Error Goto 0
        
    xmlHTTP.setTimeouts 120000, 120000, 120000, 120000
    
    xmlHTTP.open "POST", eWayCOMURL, False
    xmlHTTP.send xmlDoc
    xmlDoc.Save "eway.xml"

    If Not Err.Number = 0 Then wscript.echo "Error Sending XML Transmission To The eWay Payment Gateway"
    
    xmlDoc.async = False
    If xmlDoc.loadXML(xmlHTTP.responseText) Then
        ' Get the results
        m_ResultEwayTrxnStatus = xmlDoc.documentElement.selectSingleNode("/ewayResponse/ewayTrxnStatus").Text
        m_ResultEwayTrxnNumber = xmlDoc.documentElement.selectSingleNode("/ewayResponse/ewayTrxnNumber").Text
        m_ResultEwayTrxnOption1 = xmlDoc.documentElement.selectSingleNode("/ewayResponse/ewayTrxnOption1").Text
        m_ResultEwayTrxnOption2 = xmlDoc.documentElement.selectSingleNode("/ewayResponse/ewayTrxnOption2").Text
        m_ResultEwayTrxnOption3 = xmlDoc.documentElement.selectSingleNode("/ewayResponse/ewayTrxnOption3").Text
        m_ResultEwayTrxnReference = xmlDoc.documentElement.selectSingleNode("/ewayResponse/ewayTrxnReference").Text
        m_ResultEwayAuthCode = xmlDoc.documentElement.selectSingleNode("/ewayResponse/ewayAuthCode ").Text
        m_ResultEwayReturnAmount = xmlDoc.documentElement.selectSingleNode("/ewayResponse/ewayReturnAmount ").Text
        m_ResultEwayTrxnError = xmlDoc.documentElement.selectSingleNode("/ewayResponse/ewayTrxnError").Text
    End If
    
    If Not Err.Number = 0 Then
        wscript.echo "Error Sending XML Transmission To The eWay Payment Gateway"
    ElseIf Not CBool(m_ResultEwayTrxnStatus) Then
        wscript.echo "Error Returned By The eWay Payment Gateway: " & m_ResultEwayTrxnError
    Else     
        wscript.echo "Success " & m_ResultEwayTrxnNumber
    End If    
    
    Set xmlDocNode = Nothing
    Set xmlDoc = Nothing
    Set xmlHTTP = Nothing

Private Function XMLCreateNode(ByRef oXMLDoc, _
                               ByRef oXMLParentNode, _
                               ByVal NewNodeName, _
                               ByVal NewNodeText) 
                               
    Dim oXMLNewNode     
    
    Set oXMLNewNode = oXMLDoc.createElement(NewNodeName)
    oXMLParentNode.appendChild oXMLNewNode    
    
    If Len(NewNodeText) > 0 Then
      oXMLNewNode.Text = NewNodeText
    End If    
    
    Set XMLCreateNode = oXMLNewNode
End Function
