Página 1 de 1

webservice ultracard

Enviado: 28 Mai 2019 13:04
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.

webservice ultracard

Enviado: 28 Mai 2019 16:05
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]

webservice ultracard

Enviado: 28 Mai 2019 21:13
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

webservice ultracard

Enviado: 29 Mai 2019 08:07
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>

webservice ultracard

Enviado: 29 Mai 2019 14:24
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

webservice ultracard

Enviado: 29 Mai 2019 14:31
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

webservice ultracard

Enviado: 29 Mai 2019 14:38
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.

webservice ultracard

Enviado: 29 Mai 2019 22:00
por Wanderlei
oi Zé, ficou muito legal dessa maneira que vc vez, vou usar esse jeito que vc colocou aqui.