Clipper On Line • Ver Tópico - webservice ultracard

webservice ultracard

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

Moderador: Moderadores

 

webservice ultracard

Mensagempor Wanderlei » 28 Mai 2019 13:04

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 de usuário

Wanderlei
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 183
Data de registro: 25 Jan 2008 12:19
Cidade/Estado: Goiânia - GO
Curtiu: 13 vezes
Mens.Curtidas: 5 vezes

webservice ultracard

Mensagempor JoséQuintas » 28 Mai 2019 16:05

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, 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: 18162
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

webservice ultracard

Mensagempor fladimir » 28 Mai 2019 21:13

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:
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 de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2436
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

webservice ultracard

Mensagempor Wanderlei » 29 Mai 2019 08:07

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 de usuário

Wanderlei
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 183
Data de registro: 25 Jan 2008 12:19
Cidade/Estado: Goiânia - GO
Curtiu: 13 vezes
Mens.Curtidas: 5 vezes

webservice ultracard

Mensagempor JoséQuintas » 29 Mai 2019 14:24

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?

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, 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: 18162
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

webservice ultracard

Mensagempor JoséQuintas » 29 Mai 2019 14:31

Agora dividido em blocos.

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, 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: 18162
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

webservice ultracard

Mensagempor JoséQuintas » 29 Mai 2019 14:38

E agora usando XmlTag() da SefazClass.

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, 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: 18162
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

webservice ultracard

Mensagempor Wanderlei » 29 Mai 2019 22:00

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
Avatar de usuário

Wanderlei
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 183
Data de registro: 25 Jan 2008 12:19
Cidade/Estado: Goiânia - GO
Curtiu: 13 vezes
Mens.Curtidas: 5 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: leandrolinauer e 4 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