Integração Pop-Up com Post/XML

Introdução
 
Este documento tem como finalidade demonstrar a implementação da integração entre e-commerces e o meio de pagamento disponibilizado pela plataforma iVarejo via chamada ao ambiente iVarejo através do uso de Pop-Ups.
 
 
Padrão da integração

A integração é realizada por troca de informações via POSTs HTTP utilizando documentos XML que definem as mensagens de requisição e resposta trocadas entre a plataforma iVarejo e os e-commerces.  

Uma vez que a comunicação seja estabelecida entre as duas partes, a interface de pagamentos da iVarejo é exibida automaticamente em uma pop-up modal para o consumidor, orientando este através do fluxo de pagamento.
 
  
Diagrama de Sequência
 
Abaixo temos o diagrama de sequência que demonstra todas as mensagens trocadas entre o e-Commerce e a plataforma iVarejo.
 
 
 

















Mensagens


Abaixo estão demonstradas as estruturas das mensagens XML que são trocadas entre a plataforma e-Commerce e o iVarejo.
 

1 - EnvioMeioPagamento

a) Modelo XML:


<?xml version="1.0" encoding="utf-8"?>

<EnvioMeioPagamento>
   <CodigoEntidade></CodigoEntidade>
   <Pedido>
      <NumeroPedido></NumeroPedido>
      <ValorPedido></ValorPedido>
      <ValorFretePedido></ValorFretePedido>
      <ValorCustosAdcionaisPedido></ValorCustosAdcionaisPedido>
      <ValorTotalAPagar></ValorTotalAPagar>
      <DadosConsumidor>
         <Nome></Nome>
         <NomeMae></NomeMae>
         <NomePai></NomePai>
         <TipoPessoa></TipoPessoa>
         <DataNascimento></DataNascimento>
         <CpfCnpj></CpfCnpj>
         <Email></Email>
         <Sexo></Sexo>
         <Telefones>
            <Telefone>
               <Tipo></Tipo>
               <DDD></DDD>
               <Numero></Numero>
            </Telefone>
         </Telefones>
      </DadosConsumidor>
      <EnderecoResidencial>
         <Logradouro></Logradouro>
         <Numero></Numero>
         <Complemento></Complemento>
         <CEP></CEP>
         <Bairro></Bairro>
         <Cidade></Cidade>
         <UF></UF>
      </EnderecoResidencial>
      <EnderecoEntrega>
         <Logradouro></Logradouro>
         <Numero></Numero>
         <Complemento></Complemento>
         <CEP></CEP>
         <Bairro></Bairro>
         <Cidade></Cidade>
         <UF></UF>
      </EnderecoEntrega>
      <EnderecoCobranca>
         <Logradouro></Logradouro>
         <Numero></Numero>
         <Complemento></Complemento>
         <CEP></CEP>
         <Bairro></Bairro>
         <Cidade></Cidade>
         <UF></UF>
      </EnderecoCobranca>
      <ItensPedido>
         <ItemPedido>
            <Nome></Nome>
            <Quantidade></Quantidade>
            <ValorUnitario></ValorUnitario>
            <Fabricante></Fabricante>
            <Modelo></Modelo>
            <PartNumber></PartNumber>
         </ItemPedido>
      </ItensPedido>
   </Pedido>
</EnvioMeioPagamento>


 
b) Dicionário:

EnvioMeioPagamento
 Tag  Descrição  Tipo  Tamanho  Obrigatório
 CodigoEntidade  Código gerado pela iVarejo para identificar o e-Commerce GUID  36  Sim
 Pedido  Dados do pedido do Consumidor
 Pedido  1  Sim

Pedido
 Tag  Descrição  Tipo  Tamanho  Obrigatório
 NumeroPedido  Número do pedido
 Texto  50  Sim
 ValorPedido  Valor Líquido do Pedido
 Decimal  (18,2)  Sim
 ValorFretePedido  Valor do Frete
 Decimal  (18,2)
 Sim
 ValorCustosAdcionaisPedido  Valor de Custos Adcionais(Taxas, Impostos, Cambio, etc)
 Decimal  (18,2)  Não
 ValorTotalAPagar  Valor Total do Pedido com Frete + Custos Adcionais
 Decimal  (18,2)  Sim
 DadosConsumidor  Dados do Consumidor
 DadosConsumidor  1  Sim
 EnderecoEntrega  Dados do endereço de entraga do pedido  Endereço  1  Sim
 EnderecoResidencial  Dados do endereço residêncial do consumidor
 Endereço  1  Sim
 EnderecoCobranca  Dados do endereço cobrança do consumidor  Endereço  1  Sim
 ItensPedido  Lista de itens(produtos) que compõe o pedido
 ItemPedido  1  Sim

DadosConsumidor
 Tag  Descrição  Tipo  Tamanho  Obrigatório
 Nome  Nome do Consumidor
 Texto    Sim
 NomeMae  Nome da Mãe do Consumidor
 Texto    Não
 NomePai  Nome do Pai do Consumidor
 Texto    Não
 TipoPessoa  Tipo da Pessoa - (F:Pessoa Física / J:Pessoa Jurídica)
 Texto  1  Sim
 DataNascimento  Data de Nascimento do Consumidor
 Data
(yyyy-mm-ddThh:mm:ss)
   Sim
 CpfCnpj  CPF do consumidor (Sem formatação
 Texto    Sim
 Email  Email do consumidor
 Texto    Sim
 Sexo  Sexo do consumidor - (M:Masculino / F:Feminido)
 Texto  1  Sim
 Telefones  Lista de Telefones do consumidor
 Telefone  1 ou N
 Sim

Telefone
 Tag  Descrição  Tipo  Tamanho  Obrigatório
 Tipo  Tipo de Telefone(R:Residêncial / C:Comercial / M:Celular)
 Texto   1  Sim
 DDD  DDD do Telefone
 Numérico  2  Sim
 Numero  Número do Telefone
 Numérico  8
 Sim

Endereco
 Tag  Descrição  Tipo  Tamanho  Obrigatório
 Logradouro  Descrição do Logradouro
 Texto    Sim
 Numero  Número do logradouro
 Texto    Sim
 Complemento  Complemento
 Texto    Sim
 CEP  CEP do endereço (sem formatação)
 Texto  8  Sim
 Bairro  Bairro  Texto    Sim
 Cidade  Município  Texto    Sim
 UF  Unidade Federativa (Abreviação)
 Texto  2  Sim

ItemPedido
 Tag
 Descrição  Tipo  Tamanho  Obrigatório
 Nome  Nome do produto
 Texto    Sim
 Quantidade  Quantidade do produto comprada
 Numerico
 2  Sim
 ValorUnitario  Valor unitário do produto
 Decimal  (18,2)  Sim
 Fabricante  Nome do Fabricante
 Texto    Não
 Modelo  Código do Modelo do produto
 Texto    Não
 PartNumber  Part Number do produto
 Texto    Não


2 - RetornoMeioPagamento

a) Modelo XML:


<?xml version="1.0" encoding="utf-8"?>
<RetornoMeioPagamento>
   <NumeroPedido></NumeroPedido>
   <CodigoEntidade></CodigoEntidade>
   <CodigoRetorno></CodigoRetorno>
   <DataHoraProcessamento></DataHoraProcessamento>
   <IdTransacao></IdTransacao>
   <UrlNovaAcao></UrlNovaAcao>
   <PagamentoConcluido></PagamentoConcluido>
   <PagamentoCancelado></PagamentoCancelado>
   <PagamentoAutorizado></PagamentoAutorizado>
   <Passo></Passo>
   <QuantidadeParcelas></QuantidadeParcelas>
   <ValorParcela></ValorParcela>
</RetornoMeioPagamento>



b) Dicionário:

RetornoMeioPagamento
 Tag
 Descrição  Tipo  Tamanho  Obrigatório
 NumeroPedido  Número do pedido
 Texto  50  Sim
 CodigoEntidade  Código gerado pela iVarejo para identificar o e-Commerce  GUID
 36  Sim
 CodigoRetorno  Código que identifica o tipo de retorno
 Texto  50  sim
 DataHoraProcessamento  Data e hora do retorno o processamento
 Data
(yyyy-mm-ddThh:mm:ss)
   Sim
 IdTransacao  Número da transação interna gerada pelo iVarejo
 GUID  36  Sim
 UrlNovaAcao  URL da próxima ação identificada pelo processamento do pedido
 Texto  300  Sim
 PagamentoConcluido  Flag que indica que o pagamento foi concluído com sucesso
 Boleano  True/False  Sim
 PagamentoCancelado  Flag que indica que o pagamento foi cancelado
 Boleano  True/False  Sim
 PagamentoAutorizado  Flag que indica que o pagamento foi autorizado
 Boleano  True/False  Sim
 Passo  Passo em que o fluxo de pagamento foi finalizado
 Texto  50  Sim
 QuantidadeParcelas  Quantidade de parcelas escolhida pelo consumidor
 Numérico  2  Sim
 ValorParcela  Valor da parcela    
 Decimal  (18,2)  Sim


3 - RequisicaoStatusPagamento

a) Modelo XML:


<?xml version="1.0" encoding="utf-8"?>
<RequisicaoStatusPagamento>
   <IdTransacao></IdTransacao>
</RequisicaoStatusPagamento>



b) Dicionário:

RequisicaoStatusPagamento
 Tag
 Descrição  Tipo  Tamanho  Obrigatório
IdTransacao  Número da transação interna gerada pelo iVarejo  GUID  36  Sim
 
 
4 - DadosSegundaViaBoleto        

a) Modelo XML:


<?xml version="1.0" encoding="utf-8"?>
<DadosSegundaViaBoleto>
    <CodigoEntidade></CodigoEntidade>
    <NumeroPedido></NumeroPedido>
</DadosSegundaViaBoleto>



b) Dicionário:

DadosSegundaViaBoleto
 Tag Descrição Tipo Tamanho Obrigatório
CodigoEntidade  Código gerado pela iVarejo para identificar o e-Commerce  GUID  36  Sim
NumeroPedido  Número do pedido
 Texto  50  Sim


5 - MensagemErro

a) Modelo XML:


<?xml version="1.0" encoding="utf-8"?>
<MensagemErro>
    <CodigoEntidade></CodigoEntidade>
    <CodigoExcecao></CodigoExcecao>
    <Excecao>
        <MensagemExcecao></MensagemExcecao>
        <StackTrace></StackTrace>
        <LocalErro></LocalErro>
        <ExcecaoInterna>
            <MensagemExcecao></MensagemExcecao>
            <StackTrace></StackTrace>
            <LocalErro></LocalErro>
            <ExcecaoInterna/>
        </ExcecaoInterna>
    </Excecao>
</MensagemErro>



b) Dicionário:

MensagemErro
 Tag
 Descrição  Tipo  Tamanho  Obrigatório
 CodigoEntidade  Código gerado pela iVarejo para identificar o e-Commerce  GUID  36  Sim
 CodigoExcecao  Código que identifica o tipo de excecao
 Texto  50  Sim
 Excecao  Exceção retornada do pocessamento do iVarejo
 Excecao  0 ou 1
 Não

Excecao
 Tag
 Descrição  Tipo  Tamanho  Obrigatório
 MensagemExcecao  Mensagem de Erro
 Texto  48  Sim
 StackTrace  Dump da Stack de execução
 Texto  1000  Sim
 LocalErro  Local onde a exceção foi gerada
 Texto  300  Sim
 ExcecaoInterna  Exceção interna que representa um erro em um subnível de execução
 Excecao  0 ou 1
 Não

 
Observações
  • Todos os valores decimais tem como separador da parte fracionária o ponto(.);
  • As mensagens de retorno devem ser devidamente tratadas na implementação do e-Commerce para prover uma melhor resposta aos usuários finais.