webservice ultracard

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

Moderador: Moderadores

Avatar do usuário
Wanderlei
Usuário Nível 3
Usuário Nível 3
Mensagens: 196
Registrado em: 25 Jan 2008 13:19
Localização: Goiânia - GO

webservice ultracard

Mensagem por Wanderlei »

Boa tarde pessoal,
Alguem do grupo já fez ou consegue entender o consumo do webservice do UltraCard?

http://ultralink.ultramax.com.br:8080/u ... rV2WS?wsdl

estou com dificuldade de montar o Metodo executarSolicitarAutorizacao() por causa do array do produto.
Wanderlei Cardoso
Analista / Programador
XHarbour + GtWvW + FiveWin + HwGui + Firebird
Skype: cwanderlei
cwanderlei@yahoo.com.br
(62)98171-3059 - whatsapp

Imagem
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

webservice ultracard

Mensagem por JoséQuintas »

Wanderlei escreveu:estou com dificuldade de montar o Metodo executarSolicitarAutorizacao() por causa do array do produto.
array? que array? isso é xml.

num chute:

[sequence][codigoBarra]gdfgdfgdfgf[/codigoBarra][codigoFabricante]sdfdsfdsd[/codigoFabricante][/sequence]
[sequence][codigoBarra]gdfgdfgdfgf[/codigoBarra][codigoFabricante]sdfdsfdsd[/codigoFabricante][/sequence]
[sequence][codigoBarra]gdfgdfgdfgf[/codigoBarra][codigoFabricante]sdfdsfdsd[/codigoFabricante][/sequence]
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

webservice ultracard

Mensagem por fladimir »

Qual a dificuldade?

Importei o Webservice, e no método em questão, pelo q entendi vc passa a identificação do estabelecimento e a autorização
Essa autorização é um objeto AutorizaçãoRequestV2 q é composto por:

Código: Selecionar todos

codigoCliente
codigoDependente
codigoSubsidio
conselhoPrescritor
dataReceita
estadoConselhoPrescritor
numeroRegistroPrescritor
produtos 
   codigoBarra
   codigoFabricante
   descricao
   fabricante
   idGrupoProduto
   porcentagemDesconto
   precoBrutoLoja
   precoLiquidoAdminsitradora
   precoLiquidoFinal
   precoLiquidoLoja
   quantidade
   statusProduto
   suTotalLiquidoAdministradora
   subTotalLiquidoFinal
   subTotalLiquidoLoja
vendaEntrega
versao
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
Wanderlei
Usuário Nível 3
Usuário Nível 3
Mensagens: 196
Registrado em: 25 Jan 2008 13:19
Localização: Goiânia - GO

webservice ultracard

Mensagem por Wanderlei »

Consegui pessoal, obrigado pelas dicas, caso alguém precise disso vai aqui o exemplo.

<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:aut="http://autorizadorws.ultracard.ultramax.com.br" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<aut:executarSolicitarAutorizacao soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<estabelecimento xsi:type="urn:IdentificacaoEstabelecimento" xmlns:urn="urn:bean.service.ultracard.ultramax.com.br">
<codigo>900</codigo>
<nomeAdministradora>ULTRALINK</nomeAdministradora>
<senha>123456</senha>
</estabelecimento>
<autorizacao xsi:type="urn:AutorizacaoRequestV2" xmlns:urn="urn:bean.service.ultracard.ultramax.com.br">
<codigoCliente>100008,</codigoCliente>
<versao xsi:type="xsd:int">2</versao>
<codigoDependente>0</codigoDependente>
<codigoSubsidio>100</codigoSubsidio>
<numeroRegistroPrescritor>0</numeroRegistroPrescritor>
<conselhoPrescritor/>
<estadoConselhoPrescritor/>
<produtos>
<ProdutoV2>
<codigoBarra>7896641803871</codigoBarra>
<descricao>NEOSALDINA DRG 1X20</descricao>
<codigoFabricante>9</codigoFabricante>
<fabricante>TAKEDA PHA</fabricante>
<precoBrutoLoja>20.29</precoBrutoLoja>
<precoLiquidoLoja>20.29</precoLiquidoLoja>
<quantidade>1</quantidade>
<subTotalLiquidoLoja>20.29</subTotalLiquidoLoja>
<porcentagemDesconto>0.00</porcentagemDesconto>
<idGrupoProduto>4</idGrupoProduto>
</ProdutoV2>
</produtos>
<vendaEntrega>false</vendaEntrega>
</autorizacao>
</aut:executarSolicitarAutorizacao>
</soapenv:Body>
</soapenv:Envelope>
Wanderlei Cardoso
Analista / Programador
XHarbour + GtWvW + FiveWin + HwGui + Firebird
Skype: cwanderlei
cwanderlei@yahoo.com.br
(62)98171-3059 - whatsapp

Imagem
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

webservice ultracard

Mensagem por JoséQuintas »

Comento aqui de como gerar um XML, não sei se todos pegaram. Aproveitar esse.
Alguma dúvida em que este fonte gera um XML válido?

Código: Selecionar todos

PROCEDURE Main

   LOCAL cXml := ""

   cXml += [<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:aut="http://autorizadorws.ultracard.ultramax.com.br" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">]
   cXml += [<soapenv:Header/>]
   cXml += [<soapenv:Body>]
   cXml += [<aut:executarSolicitarAutorizacao soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">]
   cXml += [<estabelecimento xsi:type="urn:IdentificacaoEstabelecimento" xmlns:urn="urn:bean.service.ultracard.ultramax.com.br">]
   cXml += [<codigo>900</codigo>]
   cXml += [<nomeAdministradora>ULTRALINK</nomeAdministradora>]
   cXml += [<senha>123456</senha>]
   cXml += [</estabelecimento>]
   cXml += [<autorizacao xsi:type="urn:AutorizacaoRequestV2" xmlns:urn="urn:bean.service.ultracard.ultramax.com.br">]
   cXml += [<codigoCliente>100008,</codigoCliente>]
   cXml += [<versao xsi:type="xsd:int">2</versao>]
   cXml += [<codigoDependente>0</codigoDependente>]
   cXml += [<codigoSubsidio>100</codigoSubsidio>]
   cXml += [<numeroRegistroPrescritor>0</numeroRegistroPrescritor>]
   cXml += [<conselhoPrescritor/>]
   cXml += [<estadoConselhoPrescritor/>]
   cXml += [<produtos>]
   cXml += [<ProdutoV2>]
   cXml += [<codigoBarra>7896641803871</codigoBarra>]
   cXml += [<descricao>NEOSALDINA DRG 1X20</descricao>]
   cXml += [<codigoFabricante>9</codigoFabricante>]
   cXml += [<fabricante>TAKEDA PHA</fabricante>]
   cXml += [<precoBrutoLoja>20.29</precoBrutoLoja>]
   cXml += [<precoLiquidoLoja>20.29</precoLiquidoLoja>]
   cXml += [<quantidade>1</quantidade>]
   cXml += [<subTotalLiquidoLoja>20.29</subTotalLiquidoLoja>]
   cXml += [<porcentagemDesconto>0.00</porcentagemDesconto>]
   cXml += [<idGrupoProduto>4</idGrupoProduto>]
   cXml += [</ProdutoV2>]
   cXml += [</produtos>]
   cXml += [<vendaEntrega>false</vendaEntrega>]
   cXml += [</autorizacao>]
   cXml += [</aut:executarSolicitarAutorizacao>]
   cXml += [</soapenv:Body>]
   cXml += [</soapenv:Envelope>]

   RETURN cXml
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

webservice ultracard

Mensagem por JoséQuintas »

Agora dividido em blocos.

Código: Selecionar todos

PROCEDURE Main

   LOCAL cXml := ""

   cXml += [<aut:executarSolicitarAutorizacao soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">]
   cXml += [<autorizacao xsi:type="urn:AutorizacaoRequestV2" xmlns:urn="urn:bean.service.ultracard.ultramax.com.br">]
   cXml += [<codigoCliente>100008,</codigoCliente>]
   cXml += [<versao xsi:type="xsd:int">2</versao>]
   cXml += [<codigoDependente>0</codigoDependente>]
   cXml += [<codigoSubsidio>100</codigoSubsidio>]
   cXml += [<numeroRegistroPrescritor>0</numeroRegistroPrescritor>]
   cXml += [<conselhoPrescritor/>]
   cXml += [<estadoConselhoPrescritor/>]
   cXml += [<produtos>]
   GeraProduto( @cXml )
   cXml += [</produtos>]
   cXml += [<vendaEntrega>false</vendaEntrega>]
   cXml += [</autorizacao>]
   cXml += [</aut:executarSolicitarAutorizacao>]
   Envelope( @cXml )

   RETURN cXml

STATIC FUNCTION GeraProduto( cXml )

   cXml += [<ProdutoV2>]
   cXml += [<codigoBarra>7896641803871</codigoBarra>]
   cXml += [<descricao>NEOSALDINA DRG 1X20</descricao>]
   cXml += [<codigoFabricante>9</codigoFabricante>]
   cXml += [<fabricante>TAKEDA PHA</fabricante>]
   cXml += [<precoBrutoLoja>20.29</precoBrutoLoja>]
   cXml += [<precoLiquidoLoja>20.29</precoLiquidoLoja>]
   cXml += [<quantidade>1</quantidade>]
   cXml += [<subTotalLiquidoLoja>20.29</subTotalLiquidoLoja>]
   cXml += [<porcentagemDesconto>0.00</porcentagemDesconto>]
   cXml += [<idGrupoProduto>4</idGrupoProduto>]
   cXml += [</ProdutoV2>]

   RETURN cXml

STATIC FUNCTION GeraEnvelope( cXml )

   LOCAL cInicio := "", cFinal := ""

   cInicio += [<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:aut="http://autorizadorws.ultracard.ultramax.com.br" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">]
   cInicio += [<soapenv:Header/>]
   cInicio += [<soapenv:Body>]
      
   cFinal += [</soapenv:Body>]
   cFinal += [</soapenv:Envelope>]
   
   cXml := cInicio + cXml + cFinal
   
   RETURN cXml
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

webservice ultracard

Mensagem por JoséQuintas »

E agora usando XmlTag() da SefazClass.

Código: Selecionar todos

PROCEDURE Main

   LOCAL cXml := ""

   cXml += [<aut:executarSolicitarAutorizacao soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">]
   cXml += [<autorizacao xsi:type="urn:AutorizacaoRequestV2" xmlns:urn="urn:bean.service.ultracard.ultramax.com.br">]
   cXml += XmlTag( "codigoCliente", "100008" )
   cXml += [<versao xsi:type="xsd:int">2</versao>]
   cXml += XmlTag( "codigoDependente", "0" )
   cXml += XmlTag( "codigoSubsidio", "100" )
   cXml += XmlTag( "numeroRegistroPrescritor", "0" )
   cXml += XmlTag( "conselhoPrescritor", "" )
   cXml += XmlTal( "estadoConselhoPrescritor", "" )
   cXml += [<produtos>]
   GeraProduto( @cXml )
   cXml += [</produtos>]
   cXml += XmlTag( "vendaEntrega", "false" )
   cXml += [</autorizacao>]
   cXml += [</aut:executarSolicitarAutorizacao>]
   Envelope( @cXml )

   RETURN cXml

STATIC FUNCTION GeraProduto( cXml )

   cXml += [<ProdutoV2>]
   cXml += XmlTag( "codigoBarra", "7896641803871" )
   cXml += XmlTag( "descricao", "NEOSALDINA DRG 1X20" )
   cXml += XmlTag( "codigoFabricante", "9" )
   cXml += XmlTag( "fabricante", "TAKEDA PHA" )
   cXml += XmlTag( "precoBrutoLoja", "20.29" )
   cXml += XmlTag( "precoLiquidoLoja", "20.29" )
   cXml += XmlTag( "quantidade", "1" )
   cXml += XmlTag( "subTotalLiquidoLoja", "20.29" )
   cXml += XmlTag( "porcentagemDesconto", "0.00" )
   cXml += XmlTag( "idGrupoProduto", "4" )
   cXml += [</ProdutoV2>]

   RETURN cXml

STATIC FUNCTION GeraEnvelope( cXml )

   LOCAL cInicio := "", cFinal := ""

   cInicio += [<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:aut="http://autorizadorws.ultracard.ultramax.com.br" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">]
   cInicio += [<soapenv:Header/>]
   cInicio += [<soapenv:Body>]
      
   cFinal += [</soapenv:Body>]
   cFinal += [</soapenv:Envelope>]
   
   cXml := cInicio + cXml + cFinal
   
   RETURN cXml
A próxima etapa seria substituir os campos fixos por informações do aplicativo.
É isso que falo sobre NFE, CTE, MDFE, e tudo mais de XML.
Aproveitei esse pra exemplo porque é pequeno.

E no caso dos produtos... provavelmente um do while chamando GeraProduto()

Não fiz nada demais, apenas colei o XML no fonte e fui ajeitando pra facilitar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
Wanderlei
Usuário Nível 3
Usuário Nível 3
Mensagens: 196
Registrado em: 25 Jan 2008 13:19
Localização: Goiânia - GO

webservice ultracard

Mensagem por Wanderlei »

oi Zé, ficou muito legal dessa maneira que vc vez, vou usar esse jeito que vc colocou aqui.
Wanderlei Cardoso
Analista / Programador
XHarbour + GtWvW + FiveWin + HwGui + Firebird
Skype: cwanderlei
cwanderlei@yahoo.com.br
(62)98171-3059 - whatsapp

Imagem
Responder