Attribute VB_Name = "Module1"
Option Explicit

Public Sub Main()
    ' variable declarations
    Dim sXML As String
    Dim oSerializer As New SOAPSerializer30
    Dim oReader As SoapReader30
    Dim oResult As IXMLDOMElement
    Dim oFault As IXMLDOMElement
    Dim oConnector As SoapConnector30
    Const sNAMESPACE As String = "http://sjmillerconsultants.com/webservices"
    Const sENDPOINT As String = "http://www.abctext.com/webservices/sms.asmx?WSDL"

    Set oConnector = New HttpConnector30
    oConnector.Property("EndPointURL") = sENDPOINT
    ' PROXY CODE START
    ' oConnector.Property("ProxyServer") = "IPADDRESS"
    ' oConnector.Property("ProxyUser") = "DOMAIN\ACCOUNT"
    ' oConnector.Property("ProxyPassword") = "PASSWORD"
    ' oConnector.Property("EnableAutoProxy") = True
    ' PROXY CODE END
    oConnector.Connect
    oConnector.Property("SoapAction") = "http://sjmillerconsultants.com/webservices/Send"
    oConnector.BeginMessage

    With oSerializer
        .Init oConnector.InputStream
        .StartEnvelope
        .StartHeader
        .StartHeaderElement "AuthorizationHeader", sNAMESPACE
        .StartElement "SessionKey", sNAMESPACE
        .WriteString GetSessionId
        .EndElement
        .EndHeaderElement
        .EndHeader
        .StartBody
        .StartElement "Send", sNAMESPACE
        .StartElement "sXML", sNAMESPACE
        .WriteString GetXML
        .EndElement
        .EndElement
        .EndBody
        .EndEnvelope
    End With

    oConnector.EndMessage
    Set oReader = New SoapReader30
    oReader.Load oConnector.OutputStream
    If Not oReader.Fault Is Nothing Then
        MsgBox oReader.FaultString.Text
    Else
        MsgBox oReader.RpcResult.xml
    End If
End Sub

Private Function GetSessionId() As String

    Dim oSOAP As New SoapClient30
    Dim sSessId As String

    oSOAP.MSSoapInit "http://www.abctext.com/webservices/session.asmx?WSDL"
    ' PROXY CODE START
    ' oConnector.Property("ProxyServer") = "IPADDRESS"
    ' oConnector.Property("ProxyUser") = "DOMAIN\ACCOUNT"
    ' oConnector.Property("ProxyPassword") = "PASSWORD"
    ' oConnector.Property("EnableAutoProxy") = True
    ' PROXY CODE END
    sSessId = oSOAP.StartSession(YOUR_USERNAME, YOUR_PASSWORD)
    GetSessionId = sSessId
End Function

Private Function GetXML() As String

    Dim oDOM As New DOMDocument30
    Dim oNode As IXMLDOMElement
    Dim oChildNode As IXMLDOMElement
    Const sNAMESPACE As String = "http://sjmillerconsultants.com/sms/send"

    Set oNode = oDOM.createNode(NODE_ELEMENT, "Send", sNAMESPACE)
    oDOM.appendChild oNode
    Set oNode = oDOM.createNode(NODE_ELEMENT, "Request", sNAMESPACE)
    oDOM.documentElement.appendChild oNode
    Set oNode = oDOM.createNode(NODE_ELEMENT, "Recipients", sNAMESPACE)
    Set oChildNode = oDOM.createNode(NODE_ELEMENT, "Recipient", sNAMESPACE)
    oChildNode.Text = MOBILE_PHONE_NUMBER
    oNode.appendChild oChildNode
    oDOM.documentElement.lastChild.appendChild oNode
    Set oNode = oDOM.createNode(NODE_ELEMENT, "Message", sNAMESPACE)
    oNode.Text = "Test message"
    oDOM.documentElement.childNodes(0).appendChild oNode
    Set oNode = oDOM.createNode(NODE_ELEMENT, "Unicode", sNAMESPACE)
    oNode.Text = "0"
    oDOM.documentElement.childNodes(0).appendChild oNode
    Set oNode = oDOM.createNode(NODE_ELEMENT, "Sender", sNAMESPACE)
    oNode.Text = "abctext.com"
    oDOM.documentElement.childNodes(0).appendChild oNode
    GetXML = oDOM.xml
End Function








