Clipper On Line • Ver Tópico - Consumo de Webservice com Harbour.

Consumo de Webservice com Harbour.

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Consumo de Webservice com Harbour.

Mensagempor JoséQuintas » 16 Mai 2017 20:27

O SOAP está correto, é tudo questão do conteúdo do XML.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Consumo de Webservice com Harbour.

Mensagempor André Corrêa » 17 Mai 2017 16:19

Boa tarde,

Para concluir o assunto, o envelope SOAP não estava correto.
As informações que compõe o envelope variam de servidor para servidor e no caso desse webservice,
a documentação é incompleta, pois só contempla o uso dos métodos por linguagens .NET, fazendo a importação do WSDL.
Depois de muito pesquisar, descobri que o SoapUI permite importar o WSDL e gerar o envelope SOAP para consulta.
Fica a dica para quem precisar trabalhar com algum webservice que utilize o envelope SOAP customizado.
A ferramenta é ótima e depois de instalar, basta importar o WSDL para poder visualizar todos os métodos e suas chamadas,
incluindo o envelope completo. Tem uma versão Open Source, que foi a que eu baixei e é simples de usar.
O Link para download é https://www.soapui.org/open-source.html

O formato correto do envelope é:
<soap12:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://tempuri.org/">
   <soap12:Header>
      <tns:Senha>?</tns:Senha>
      <tns:Length>?</tns:Length>
      <tns:FileName>?</tns:FileName>
      <tns:Estabelecimento>?</tns:Estabelecimento>
   </soap12:Header>
   <soap12:Body>
      <tns:RemoteFileInfo>
         <tns:FileByteStream>?</tns:FileByteStream>
      </tns:RemoteFileInfo>
   </soap12:Body>
</soap12:Envelope>


E o XML final, envelopado ficou assim:
<?xml version="1.0" encoding="utf-8"?><soap12:Envelope xmlns:soap12="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://tempuri.org/"><soap12:Header><tns:Senha>159753</tns:Senha><tns:Length>2406</tns:Length><tns:FileName>C:\A\LXA13703.xml</tns:FileName><tns:Estabelecimento>9999999999</tns:Estabelecimento></soap12:Header><soap12:Body><tns:RemoteFileInfo><tns:FileByteStream><registros><cabecalho><Estabelecimento>999999999</Estabelecimento><DataInicial>27/01/17</DataInicial><DataFinal>27/01/17</DataFinal><Versao>3</Versao><Sistema/></cabecalho><registro><CodigoTipoProduto>10</CodigoTipoProduto><DescricaoTipoProduto>Mastercard Credito a Vista</DescricaoTipoProduto><CodigoAutorizacao>456546</CodigoAutorizacao><IdentificadorPagamento>114956</IdentificadorPagamento><DataVenda>27/01/17</DataVenda><DataVencimento>28/02/17</DataVencimento><ValorVendaParcela>200,00</ValorVendaParcela><ValorLiquidoParcela/><TotalVenda>438,00</TotalVenda><Taxa/><Parcela>0</Parcela><TotalDeParcelas>0</TotalDeParcelas><NSU/><TID/><MeioCaptura>1</MeioCaptura><Operadora>2</Operadora><Modalidade>1</Modalidade></registro><registro><CodigoTipoProduto>11</CodigoTipoProduto><DescricaoTipoProduto>Mastercard Maestro Debito</DescricaoTipoProduto><CodigoAutorizacao>456151</CodigoAutorizacao><IdentificadorPagamento>114956</IdentificadorPagamento><DataVenda>27/01/17</DataVenda><DataVencimento>28/01/17</DataVencimento><ValorVendaParcela>238,00</ValorVendaParcela><ValorLiquidoParcela/><TotalVenda>438,00</TotalVenda><Taxa/><Parcela>0</Parcela><TotalDeParcelas>0</TotalDeParcelas><NSU/><TID/><MeioCaptura>1</MeioCaptura><Operadora>2</Operadora><Modalidade>0</Modalidade></registro><registro><CodigoTipoProduto>10</CodigoTipoProduto><DescricaoTipoProduto>Mastercard Credito a Vista</DescricaoTipoProduto><CodigoAutorizacao>549137</CodigoAutorizacao><IdentificadorPagamento>114960</IdentificadorPagamento><DataVenda>27/01/17</DataVenda><DataVencimento>28/02/17</DataVencimento><ValorVendaParcela>200,00</ValorVendaParcela><ValorLiquidoParcela/><TotalVenda>438,00</TotalVenda><Taxa/><Parcela>0</Parcela><TotalDeParcelas>0</TotalDeParcelas><NSU/><TID/><MeioCaptura>1</MeioCaptura><Operadora>2</Operadora><Modalidade>1</Modalidade></registro><registro><CodigoTipoProduto>11</CodigoTipoProduto><DescricaoTipoProduto>Mastercard Maestro Debito</DescricaoTipoProduto><CodigoAutorizacao>698410</CodigoAutorizacao><IdentificadorPagamento>114960</IdentificadorPagamento><DataVenda>27/01/17</DataVenda><DataVencimento>28/01/17</DataVencimento><ValorVendaParcela>238,00</ValorVendaParcela><ValorLiquidoParcela/><TotalVenda>438,00</TotalVenda><Taxa/><Parcela>0</Parcela><TotalDeParcelas>0</TotalDeParcelas><NSU/><TID/><MeioCaptura>1</MeioCaptura><Operadora>2</Operadora><Modalidade>0</Modalidade></registro></registros></tns:FileByteStream></tns:RemoteFileInfo></soap12:Body></soap12:Envelope>


Obrigado a todos que tentaram ajudar.
-- André Corrêa

"Opte por aquilo que faz o seu coração vibrar, apesar de todas as consequências". - Osho
Avatar de usuário

André Corrêa
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 81
Data de registro: 03 Nov 2015 06:46
Cidade/Estado: Caraguatatuba/SP
Curtiu: 8 vezes
Mens.Curtidas: 3 vezes

Consumo de Webservice com Harbour.

Mensagempor JoséQuintas » 17 Mai 2017 16:32

Muito bom saber disso.
Já tinha visto algo parecido, mas só com ferramenta paga.
Mais um para os utilitários indispensáveis.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Consumo de Webservice com Harbour.

Mensagempor Toledo » 18 Mai 2017 11:54

JoséQuintas escreveu:Já tinha visto algo parecido, mas só com ferramenta paga.


Eu já tinha falado sobre o SOAPUI aqui no fórum:
http://www.pctoledo.com.br/forum/viewtopic.php?f=20&t=15552&#p92068

Ele é muito bom, ajuda muito para ver métodos, parâmetros e modelos de xML de envio e retorno.

Abraços
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Consumo de Webservice com Harbour.

Mensagempor JoséQuintas » 18 Mai 2017 12:44

E foi ele mesmo que testei da outra vez, mas não funcionou com NFE, não deixou escolher certificado ou não encontrei aonde configurar.
Se conseguiu isso, e puder passar a dica, seria bom pra eventuais necessidades do governo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Consumo de Webservice com Harbour.

Mensagempor Toledo » 18 Mai 2017 14:10

Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Consumo de Webservice com Harbour.

Mensagempor JoséQuintas » 18 Mai 2017 15:27

Vixe... Não ia descobrir nunca.... rs
O próprio autor do texto disse que apanhou muito.
Valeu.

Ainda não testei.
Talvez tenha que criar um projeto, se entendi bem.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Consumo de Webservice com Harbour.

Mensagempor JoséQuintas » 24 Mai 2017 03:11

Não entendi nada.
Tem um vídeo no youtube mostrando

https://www.youtube.com/watch?v=a-eB6nqwOh0

até aí, tudo bem.
Mas na prática não é assim que aparece.
Não encontrei a mesma versão do vídeo 2.3, só 2.2 ou 2.5. Testei as duas.

soapui1.png


No vídeo aparece o xml inteiro, mas no uso aparece parcial.
Tô achando que é algo relacionado a esse tal binding, que em SP não existe.

Alguma dica sobre o que falta pra mostrar mais completo?

Obs. NFE 3.10 Acre
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Consumo de Webservice com Harbour.

Mensagempor JoséQuintas » 24 Mai 2017 14:52

Resolvido, era o XML errado.
Quanto ao SOAPUI, vou ter que esperar algum webservice diferente.
Talvez por eu já conhecer esse envelope, mostrou o que eu já sabia e por isso não tenha visto utilidade.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Consumo de Webservice com Harbour.

Mensagempor JoséQuintas » 24 Mai 2017 19:34

soapui2.png


De qualquer forma, ele me chamou a atenção numa coisa:

      ::cXmlSoap +=       [<] + ::cProjeto + [DadosMsg xmlns="] + ::cSoapService + [">]


Eu coloco o serviço nesse xmlns=, e na SoapAction somente a última palavra.

Pelo que entendi dos XMLs, isso é igual PATH, onde podemos usar o PATH exato ou o PATH relativo ao PATH atual.
Me deu a impressão de que poderia colocar SoapAction completo, e remover a indicação acima.
Se isso der certo, dentro da classe:
- vai transformar o array duplo em array simples
- vai deixar o fonte do envelope mais limpo
- vai deixar mais fácil pra alterações futuras (NFE 4.0 e outros)

Assim que der vou fazer o teste, e neste caso, o SoapUI vai ter ajudado até mesmo no que já estava pronto.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Consumo de Webservice com Harbour.

Mensagempor Mario Mesquita » 01 Dez 2017 12:55

Boa trde pessoal.

Enfim, comecei os estudos para fazer o bendito webservice. Fui no post dos Correiros e funcionou, mas não gerou os XML, resquest, response, etc.

Os exemplos aqui estão funcionando? Aí pego e adapto ao site que devo pesquisar.

Se não, se puderem me indicar um tópico que tenha algo operacional, desde já agradeço!

Sds,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

Consumo de Webservice com Harbour.

Mensagempor Mario Mesquita » 05 Dez 2017 16:22

Olá, pessoal.

Tentei fazer rodar o exemplo do André e deu erro de compilação, no TRY/CATCH. O Harbour não suporta esse comando?

Sds,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

Consumo de Webservice com Harbour.

Mensagempor Daniel » 05 Dez 2017 18:26

Voce pode incluir a lib xhb.lib
ou colocar esta linhas
#xcommand TRY              => BEGIN SEQUENCE WITH {|o| break(o)}
#xcommand CATCH [<!oErr!>] => RECOVER [USING <oErr>] <-oErr->
Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Avatar de usuário

Daniel
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 373
Data de registro: 13 Ago 2003 22:42
Cidade/Estado: Apucarana - PR
Curtiu: 0 vez
Mens.Curtidas: 36 vezes

Consumo de Webservice com Harbour.

Mensagempor Mario Mesquita » 05 Dez 2017 19:18

Boa noite.

Daniel, eu uso o Harbour. Dá pra usar a lib no xHarbour? Não seria melhor usar o BEGIN SEQUENCE no lugar do TRY/CATCH?

Sds,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

Consumo de Webservice com Harbour.

Mensagempor Daniel » 05 Dez 2017 20:26

Está lib e do harbour mesmo compatibilidade ou usar o Begin
Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Avatar de usuário

Daniel
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 373
Data de registro: 13 Ago 2003 22:42
Cidade/Estado: Apucarana - PR
Curtiu: 0 vez
Mens.Curtidas: 36 vezes

Anterior Próximo



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 8 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro