SMS / XML E WEBSERVICE

GNCNET 12/05/2010 19:00:09
#341615
Estou integrando meu sistema a um webservice para envio de SMS.
Minhs dificuldade é como enviar o XML gerado.

O provedor de SMS é a TWW: http://www.twwwireless.com.br/reluzcap/
O código é:

------------------------
SOAP 1.1

The following is a sample SOAP 1.1 request and response. The placeholders shown need to be replaced with actual values.
POST /reluzcap/wsreluzcap.asmx HTTP/1.1
Host: www.twwwireless.com.br
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: [Ô]https://www.twwwireless.com.br/reluzcap/wsreluzcap/EnviaSMS[Ô]

<?xml version=[Ô]1.0[Ô] encoding=[Ô]utf-8[Ô]?>
<soap:Envelope xmlns:xsi=[Ô]http://www.w3.org/2001/XMLSchema-instance[Ô] xmlns:xsd=[Ô]http://www.w3.org/2001/XMLSchema[Ô] xmlns:soap=[Ô]http://schemas.xmlsoap.org/soap/envelope/[Ô]>
<soap:Body>
<EnviaSMS xmlns=[Ô]https://www.twwwireless.com.br/reluzcap/wsreluzcap[Ô]>
<NumUsu>string</NumUsu>
<Senha>string</Senha>
<SeuNum>string</SeuNum>
<Celular>string</Celular>
<Mensagem>string</Mensagem>
</EnviaSMS>
</soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version=[Ô]1.0[Ô] encoding=[Ô]utf-8[Ô]?>
<soap:Envelope xmlns:xsi=[Ô]http://www.w3.org/2001/XMLSchema-instance[Ô] xmlns:xsd=[Ô]http://www.w3.org/2001/XMLSchema[Ô] xmlns:soap=[Ô]http://schemas.xmlsoap.org/soap/envelope/[Ô]>
<soap:Body>
<EnviaSMSResponse xmlns=[Ô]https://www.twwwireless.com.br/reluzcap/wsreluzcap[Ô]>
<EnviaSMSResult>string</EnviaSMSResult>
</EnviaSMSResponse>
</soap:Body>
</soap:Envelope>
SOAP 1.2

The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.
POST /reluzcap/wsreluzcap.asmx HTTP/1.1
Host: www.twwwireless.com.br
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version=[Ô]1.0[Ô] encoding=[Ô]utf-8[Ô]?>
<soap12:Envelope xmlns:xsi=[Ô]http://www.w3.org/2001/XMLSchema-instance[Ô] xmlns:xsd=[Ô]http://www.w3.org/2001/XMLSchema[Ô] xmlns:soap12=[Ô]http://www.w3.org/2003/05/soap-envelope[Ô]>
<soap12:Body>
<EnviaSMS xmlns=[Ô]https://www.twwwireless.com.br/reluzcap/wsreluzcap[Ô]>
<NumUsu>string</NumUsu>
<Senha>string</Senha>
<SeuNum>string</SeuNum>
<Celular>string</Celular>
<Mensagem>string</Mensagem>
</EnviaSMS>
</soap12:Body>
</soap12:Envelope>
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version=[Ô]1.0[Ô] encoding=[Ô]utf-8[Ô]?>
<soap12:Envelope xmlns:xsi=[Ô]http://www.w3.org/2001/XMLSchema-instance[Ô] xmlns:xsd=[Ô]http://www.w3.org/2001/XMLSchema[Ô] xmlns:soap12=[Ô]http://www.w3.org/2003/05/soap-envelope[Ô]>
<soap12:Body>
<EnviaSMSResponse xmlns=[Ô]https://www.twwwireless.com.br/reluzcap/wsreluzcap[Ô]>
<EnviaSMSResult>string</EnviaSMSResult>
</EnviaSMSResponse>
</soap12:Body>
</soap12:Envelope>
HTTP GET

The following is a sample HTTP GET request and response. The placeholders shown need to be replaced with actual values.
GET /reluzcap/wsreluzcap.asmx/EnviaSMS?NumUsu=string&Senha=string&SeuNum=string&Celular=string&Mensagem=string HTTP/1.1
Host: www.twwwireless.com.br
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version=[Ô]1.0[Ô] encoding=[Ô]utf-8[Ô]?>
<string xmlns=[Ô]https://www.twwwireless.com.br/reluzcap/wsreluzcap[Ô]>string</string>
HTTP POST

The following is a sample HTTP POST request and response. The placeholders shown need to be replaced with actual values.
POST /reluzcap/wsreluzcap.asmx/EnviaSMS HTTP/1.1
Host: www.twwwireless.com.br
Content-Type: application/x-www-form-urlencoded
Content-Length: length

NumUsu=string&Senha=string&SeuNum=string&Celular=string&Mensagem=string
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version=[Ô]1.0[Ô] encoding=[Ô]utf-8[Ô]?>
<string xmlns=[Ô]https://www.twwwireless.com.br/reluzcap/wsreluzcap[Ô]>string</string>

-------------
Agradeço, desde já
Gardel
GNCNET 14/05/2010 10:25:41
#341755
Alguma idéia...
TECLA 14/05/2010 22:11:46
#341807
Fiz um exemplo rápido pra você.
Veja se te ajuda.
GNCNET 24/05/2010 19:55:09
#342655
Desculpe-me por não ter retornado, mas foram por problemas.
Vou testar, mas me parece que é isto mesmo.
Obrigado
Gardel
GNCNET 24/05/2010 20:10:09
#342656
Tecla, se não for abuso, por favor poste o projeto...
Gardel
MARCELOSN 24/05/2010 22:35:21
#342664
Resposta escolhida
Boa noite

ja utilizo o serviço desta empresa no caso voce pode montar uma classe e dpois chamar o metodo enviar


segue a classe e exemplo de uso


No formulario
Criar 2 campo um para telefone e outro para mensagem

No botão de enviar

Dim Conexaosms As New Conexaosms

Conexaosms.wsm_EnviaSMS [Ô]NomeUsuario[Ô], [Ô]SenhaUsuario[Ô], _
[Ô]Infome um telefone Celualar[Ô], _
txtTelefone.Text, _
txtMensagem.Text
[ô]



MARCELOSN 24/05/2010 22:37:21
#342665
segue agora a classe


=============================================
Nome da Classe ==> Conexaosms
[ô]*****************************************************************
[ô]Esta classe foi criada pelo MARCELO SANTOS
[ô]
[ô]Criação: 9/25/2008 12:08:31 AM
[ô]
[ô]Descrição:
[ô]Esta classe é uma representação de classe do Visual Basic for Applications do serviço da Web
[ô]conforme definido por http://webservices.twwwireless.com.br/reluzcap/wsreluzcap.asmx?wsdl.
[ô]
[ô]Usar:
[ô]Dimensione uma variável como novo(a) clsws_ReluzCapx0020Webx0020 e escreva o código para
[ô]usar os métodos fornecidos pela classe.
[ô]Exemplo:
[ô] Dim ExampleVar as New clsws_ReluzCapx0020Webx0020
[ô] debug.print ExampleVar.wsm_EnviaSMS([Ô]Entrada de Exemplo[Ô])
[ô]
[ô]
[ô]Alterações no código desta classe podem resultar em comportamento incorreto.
[ô]
[ô]*****************************************************************

[ô]Dimensionando variáveis de classe particulares.
Private sc_ReluzCapx0020Webx0020 As SoapClient30
Private Const c_WSDL_URL As String = [Ô]http://webservices.twwwireless.com.br/reluzcap/wsreluzcap.asmx?wsdl[Ô]
Private Const c_SERVICE As String = [Ô]ReluzCap_x0020_Web_x0020_Service[Ô]
Private Const c_PORT As String = [Ô]ReluzCap_x0020_Web_x0020_ServiceSoap[Ô]
Private Const c_SERVICE_NAMESPACE As String = [Ô]https://www.twwwireless.com.br/reluzcap/wsreluzcap[Ô]

Private Sub Class_Initialize()
[ô]*****************************************************************
[ô]Esta sub-rotina será chamada sempre que a classe for instanciada.
[ô]Cria sc_ComplexTypes como novo SoapClient30 e, em seguida,
[ô]inicializa sc_ComplexTypes.mssoapinit2 com o arquivo WSDL encontrado em
[ô]http://webservices.twwwireless.com.br/reluzcap/wsreluzcap.asmx?wsdl.
[ô]*****************************************************************

Dim str_WSML As String
str_WSML = [Ô][Ô]

Set sc_ReluzCapx0020Webx0020 = New SoapClient30

sc_ReluzCapx0020Webx0020.MSSoapInit2 c_WSDL_URL, str_WSML, c_SERVICE, c_PORT, c_SERVICE_NAMESPACE
[ô]Use o servidor proxy definido nas configurações da LAN do Internet Explorer para detectar
[ô], configurando ProxyServer como <CURRENT_USER>
sc_ReluzCapx0020Webx0020.ConnectorProperty([Ô]ProxyServer[Ô]) = [Ô]<CURRENT_USER>[Ô]
[ô]Detecte automaticamente as configurações de proxy se o Internet Explorer for definido para detecção automática,
[ô]configurando EnableAutoProxy como True
sc_ReluzCapx0020Webx0020.ConnectorProperty([Ô]EnableAutoProxy[Ô]) = True


End Sub

Private Sub Class_Terminate()
[ô]*****************************************************************
[ô]Esta sub-rotina será chamada sempre que a classe for destruída.
[ô]Define sc_ComplexTypes como Nada.
[ô]*****************************************************************

[ô]Interceptação de Erro
On Error GoTo Class_TerminateTrap

Set sc_ReluzCapx0020Webx0020 = Nothing

Exit Sub

Class_TerminateTrap:
ReluzCapx0020Webx0020ErrorHandler ([Ô]Class_Terminate[Ô])
End Sub

Private Sub ReluzCapx0020Webx0020ErrorHandler(str_Function As String)
[ô]*****************************************************************
[ô]Esta sub-rotina é o manipulador de erros de classe. Ela pode ser chamada a partir de qualquer sub-rotina ou função de classe
[ô]quando tal sub-rotina ou função encontrar um erro. Em seguida, ela acusará o erro juntamente com o
[ô]nome da sub-rotina ou função que fez a chamada.
[ô]*****************************************************************

[ô]Erro de SOAP
If sc_ReluzCapx0020Webx0020.FaultCode <> [Ô][Ô] Then
Err.Raise vbObjectError, str_Function, sc_ReluzCapx0020Webx0020.FaultString
[ô]Erro Não-SOAP
Else
Err.Raise Err.Number, str_Function, Err.Description
End If

End Sub

Public Function wsm_EnviaSMS(ByVal str_NumUsu As String, ByVal str_Senha As String, ByVal str_SeuNum As String, ByVal str_Celular As String, ByVal str_Mensagem As String) As String
[ô]*****************************************************************
[ô]Função proxy criada de http://webservices.twwwireless.com.br/reluzcap/wsreluzcap.asmx?wsdl.
[ô]*****************************************************************

[ô]Interceptação de Erro
On Error GoTo wsm_EnviaSMSTrap

wsm_EnviaSMS = sc_ReluzCapx0020Webx0020.EnviaSMS(str_NumUsu, str_Senha, str_SeuNum, str_Celular, str_Mensagem)

Exit Function
wsm_EnviaSMSTrap:
ReluzCapx0020Webx0020ErrorHandler [Ô]wsm_EnviaSMS[Ô]
End Function

Public Function wsm_EnviaSMSAge(ByVal str_NumUsu As String, ByVal str_Senha As String, ByVal str_SeuNum As String, ByVal str_Celular As String, ByVal str_Mensagem As String, ByVal dtm_Agendamento As Date) As String
[ô]*****************************************************************
[ô]Função proxy criada de http://webservices.twwwireless.com.br/reluzcap/wsreluzcap.asmx?wsdl.
[ô]*****************************************************************

[ô]Interceptação de Erro
On Error GoTo wsm_EnviaSMSAgeTrap

wsm_EnviaSMSAge = sc_ReluzCapx0020Webx0020.EnviaSMSAge(str_NumUsu, str_Senha, str_SeuNum, str_Celular, str_Mensagem, dtm_Agendamento)

Exit Function
wsm_EnviaSMSAgeTrap:
ReluzCapx0020Webx0020ErrorHandler [Ô]wsm_EnviaSMSAge[Ô]
End Function

Public Function wsm_EnviaSMSDataSet(ByVal str_NumUsu As String, ByVal str_Senha As String, ByVal any_DS As MSXML2.IXMLDOMNodeList) As String
[ô]*****************************************************************
[ô]Função proxy criada de http://webservices.twwwireless.com.br/reluzcap/wsreluzcap.asmx?wsdl.
[ô]
[ô][Ô]any_DS[Ô] é definido como XML. Consulte Tipos Complexos: Variáveis XML na
[ô]Ajuda do Microsoft Office 2003 Web Services Toolkit para obter detalhes sobre a implementação de variáveis XML.
[ô]*****************************************************************

[ô]Interceptação de Erro
On Error GoTo wsm_EnviaSMSDataSetTrap

wsm_EnviaSMSDataSet = sc_ReluzCapx0020Webx0020.EnviaSMSDataSet(str_NumUsu, str_Senha, any_DS)

Exit Function
wsm_EnviaSMSDataSetTrap:
ReluzCapx0020Webx0020ErrorHandler [Ô]wsm_EnviaSMSDataSet[Ô]
End Function

Public Function wsm_EnviaSMSXML(ByVal str_NumUsu As String, ByVal str_Senha As String, ByVal str_StrXML As String) As String
[ô]********************************************************
[ô]Função proxy criada de http://webservices.twwwireless.com.br/reluzcap/wsreluzcap.asmx?wsdl.
[ô]*****************************************************************

[ô]Interceptação de Erro
On Error GoTo wsm_EnviaSMSXMLTrap

wsm_EnviaSMSXML = sc_ReluzCapx0020Webx0020.EnviaSMSXML(str_NumUsu, str_Senha, str_StrXML)

Exit Function
wsm_EnviaSMSXMLTrap:
ReluzCapx0020Webx0020ErrorHandler [Ô]wsm_EnviaSMSXML[Ô]
End Function

Public Function wsm_EnviaSMSTIM(ByVal str_XMLString As String) As MSXML2.IXMLDOMNodeList
[ô]******************************************************
[ô]Função proxy criada de http://webservices.twwwireless.com.br/reluzcap/wsreluzcap.asmx?wsdl.
[ô]
[ô][Ô]wsm_EnviaSMSTIM[Ô] é definido como XML. Consulte Tipos Complexos: Variáveis XML na
[ô]Ajuda do Microsoft Office 2003 Web Services Toolkit para obter detalhes sobre a implementação de variáveis XML.
[ô]*****************************************************************

[ô]Interceptação de Erro
On Error GoTo wsm_EnviaSMSTIMTrap

Set wsm_EnviaSMSTIM = sc_ReluzCapx0020Webx0020.EnviaSMSTIM(str_XMLString)

Exit Function
wsm_EnviaSMSTIMTrap:
ReluzCapx0020Webx0020ErrorHandler [Ô]wsm_EnviaSMSTIM[Ô]
End Function

Public Function wsm_StatusSMS(ByVal str_NumUsu As String, ByVal str_Senha As String, ByVal str_SeuNum As String) As MSXML2.IXMLDOMNodeList
[ô]*******************************************************
[ô]Função proxy criada de http://webservices.twwwireless.com.br/reluzcap/wsreluzcap.asmx?wsdl.
[ô]
[ô][Ô]wsm_StatusSMS[Ô] é definido como XML. Consulte Tipos Complexos: Variáveis XML na
[ô]Ajuda do Microsoft Office 2003 Web Services Toolkit para obter detalhes sobre a implementação de variáveis XML.
[ô]*****************************************************************

[ô]Interceptação de Erro
On Error GoTo wsm_StatusSMSTrap

Set wsm_StatusSMS = sc_ReluzCapx0020Webx0020.StatusSMS(str_NumUsu, str_Senha, str_SeuNum)

Exit Function
wsm_StatusSMSTrap:
ReluzCapx0020Webx0020ErrorHandler [Ô]wsm_StatusSMS[Ô]
End Function

Public Function wsm_StatusSMSDataSet(ByVal str_NumUsu As String, ByVal str_Senha As String, ByVal any_DS As MSXML2.IXMLDOMNodeList) As MSXML2.IXMLDOMNodeList
[ô]***************************************************
[ô]Função proxy criada de http://webservices.twwwireless.com.br/reluzcap/wsreluzcap.asmx?wsdl.
[ô]
[ô][Ô]wsm_StatusSMSDataSet, any_DS[Ô] é definido como XML. Consulte Tipos Complexos: Variáveis XML na
[ô]Ajuda do Microsoft Office 2003 Web Services Toolkit para obter detalhes sobre a implementação de variáveis XML.
[ô]**************************************************

[ô]Interceptação de Erro
On Error GoTo wsm_StatusSMSDataSetTrap

Set wsm_StatusSMSDataSet = sc_ReluzCapx0020Webx0020.StatusSMSDataSet(str_NumUsu, str_Senha, any_DS)

Exit Function
wsm_StatusSMSDataSetTrap:
ReluzCapx0020Webx0020ErrorHandler [Ô]wsm_StatusSMSDataSet[Ô]
End Function

Public Function wsm_BuscaSMSMO(ByVal str_NumUsu As String, ByVal str_Senha As String, ByVal dtm_DataIni As Date, ByVal dtm_DataFim As Date) As MSXML2.IXMLDOMNodeList
[ô]********************************************
[ô]Função proxy criada de http://webservices.twwwireless.com.br/reluzcap/wsreluzcap.asmx?wsdl.
[ô]
[ô][Ô]wsm_BuscaSMSMO[Ô] é definido como XML. Consulte Tipos Complexos: Variáveis XML na
[ô]Ajuda do Microsoft Office 2003 Web Services Toolkit para obter detalhes sobre a implementação de variáveis XML.
[ô]*********************************************

[ô]Interceptação de Erro
On Error GoTo wsm_BuscaSMSMOTrap
Set wsm_BuscaSMSMO = sc_ReluzCapx0020Webx0020.BuscaSMSMO(str_NumUsu, str_Senha, dtm_DataIni, dtm_DataFim)

Exit Function
GNCNET 26/05/2010 11:26:34
#342832
Marcelo,
obrigado.. Mas infelizmente está dando erro de compilação, user-defined type not defined
na linha

[ô]Dimensionando variáveis de classe particulares.
Private sc_ReluzCapx0020Webx0020 As SoapClient30

Também onde coloco:

[ô]Usar:
[ô]Dimensione uma variável como novo(a) clsws_ReluzCapx0020Webx0020 e escreva o código para
[ô]usar os métodos fornecidos pela classe.
[ô]Exemplo:
[ô] Dim ExampleVar as New clsws_ReluzCapx0020Webx0020
[ô] debug.print ExampleVar.wsm_EnviaSMS([Ô]Entrada de Exemplo[Ô])

????
Sei qu eé demais, mas se possível...
Gardel


MARCELOSN 26/05/2010 14:41:06
#342846
Boa tarde

O erro e devido a sua maquina não esta instalado o SOAP da microsoft para xml com webservice


Procure na microsoft
SOAP Toolkit 3.0
Microsoft Office 2003 Web Services Toolkit 2.01

================================================
No projeto faça a referencia nas bibliotecas:
Microsoft Soap Type Library v3.0
Microsoft XML v3.0

GNCNET 29/05/2010 15:39:17
#343176
Obrigado, as 2 respostas resolveram o problema. A necessidade estava em referenciar as bibliotecas.
Gardel
Tópico encerrado , respostas não são mais permitidas