Blog‎ > ‎

Integração Pop-Up com Post/XML‎ (via ASP .NET) - Conector iVarejo

postado em 12 de fev de 2012 17:02 por Usuário desconhecido
por Filipe Abelha

Como prometido no post anterior, hoje analisaremos o funcionamento interno do conector iVarejo. Recapitulando, esse conector é fornecido através do assembly "iVarejo.Ecommerce.EAI.Conector.dll" e nele encapsulamos boa parte da lógica de integração, implementando os métodos e objetos que são utilizados. Nele são implementados os seguintes métodos:

public void IniciarPagamentoPedido(DadosPagamento dadosPagamento, Page page);

Envia as informações do pedido para a iVarejo.

public RetornoPagamentoPedido ObterRetornoMeioPagamento();

Recebe as informações de retorno do pagamento, conforme visto no último post.

public bool RequisitarSegundaViaBoletos(DadosRequisicaoSegundaViaBoletos dadosRequisicaoSegundaVia);

Solicita a segunda via dos boletos referentes à um determinado pedido.


Vamos analisar como funciona cada um desses métodos, para facilitar a compreensão serão definidos os principais passos de execução (como se estivéssemos "debugando" o código):


IniciarPagamentoPedido

1 - Instanciação de um objeto do tipo HttpWebRequest com a URL definida na diretiva "IVJ_URL_ENVIO_DADOS_PEDIDO" cadastrada no web.config. Este objeto tem um conteúdo do tipo "text/xml", com método do tipo "POST" e com um CokieContainer instanciado.

2 - Instanciação de um objeto do tipo StreamWriter com o stream do objeto criado no passo 1.

3 - Transforma o objeto do tipo DadosPagamento informado na chamada em um tipo interno e este é convertido para um XML e o escreve no objeto criado no passo 1.

4 - Instanciação de um objeto do tipo HttpWebResponse com o response do objeto criado no passo 1.

5 - Instanciação de um objeto do tipo StreamReader com o stream do objeto criado no passo 4.

6 - Obtenção do XML de retorno contido no objeto criado no passo 5.

7 - Conversão do XML obtido no passo 6.

8 - Criação de um string contendo o javascript a ser utilizado para a abertura do pop-up do meio de pagamento da iVarejo, de acordo com o browser utilizado pelo usuário.

9 - Execução do script e abertura do pop-up do meio de pagamento da iVarejo.


ObterRetornoMeioPagamento

1 - Instanciação de um objeto do tipo HttpWebRequest com a URL definida na diretiva "IVJ_URL_RETORNO_STATUS_MEIO_PAGAMENTO" cadastrada no web.config. Este objeto tem um conteúdo do tipo "text/xml", com método do tipo "POST" e com um CokieContainer instanciado.

2 - Instanciação de um objeto do tipo StreamWriter com o stream do objeto criado no passo 1.

3 - Obtenção do IdTransação da QueryString.

4 - Converte um objeto interno com o IdTransacao para um XML e o escreve no objeto criado no passo 1.

5 - Instanciação de um objeto do tipo HttpWebResponse com o response do objeto criado no passo 1.

6 - Instanciação de um objeto do tipo StreamReader com o stream do objeto criado no passo 4.

7 - Obtenção do XML de retorno contido no objeto criado no passo 5.

8 - Conversão do XML obtido no passo 7 em um objeto do tipo RetornoPagamentoPedido.

9 - Retorno do objeto criado no passo 8.



RequisitarSegundaViaBoletos

1 - Instanciação de um objeto do tipo HttpWebRequest com a URL definida na diretiva "IVJ_URL_REQUISICAO_SEGUNDA_VIA_BOLETOS" cadastrada no web.config. Este objeto tem um conteúdo do tipo "text/xml", com método do tipo "POST" e com um CokieContainer instanciado.

2 - Instanciação de um objeto do tipo StreamWriter com o stream do objeto criado no passo 1.

3 - Transforma o objeto do tipo DadosRequisicaoSegundaViaBoletos informado na chamada em um tipo interno e este é convertido para um XML e o escreve no objeto criado no passo 1.

4 - Instanciação de um objeto do tipo HttpWebResponse com o response do objeto criado no passo 1.

5 - Instanciação de um objeto do tipo StreamReader com o stream do objeto criado no passo 4.

6 - Obtenção do XML de retorno contido no objeto criado no passo 5.

7 - Conversão do XML obtido no passo 6.

8 - Caso o retorno tenha sinalizado um correto envio da segunda via, retorna true. Caso contrário, false.



Este post não tinha como objetivo ensinar os conceitos tecnológicos envolvidos na integração, mas sim informar quais passos cada método executava. Caso exista alguma dúvida no conteúdo abordado, sugiro uma pesquisa rápida na MSDN Library.


tags: #integracao, #xml

Fontes:

---
Comments