Blog‎ > ‎

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

postado em 19 de dez de 2011 03:37 por Usuário desconhecido
por Filipe Abelha

No último post vimos o processo de funcionamento da integração pop-up com Post/XML. Como prometido, hoje começaremos a ver como essa integração funciona na prática, iniciando com a tecnologia Microsoft ASP .NET.

Nós criamos uma aplicação exemplo utilizando essa tecnologia, ela se encontra na página da integração pop-up com Post/XML (neste link). Então eu sugiro que você baixe os arquivos "ExemplosIntegracaoEcommerceiVarejo.zip" (aplicação exemplo) e "iVarejo.Ecommerce.EAI.Conector.dll" (conector) para conseguir acompanhar melhor o seu funcionamento.


A aplicação exemplo

Esta solução está compilada na versão 3.5 do Microsoft .NET Framework, mas a sua atualização para a versão 4.0 acontece de forma automática pelo Visual Studio 2010 (caso seja necessário).

Abrindo a aplicação é possível ver o conector na pasta "External References" e um projeto web chamado "ExemploPopup", que contém 2 páginas "default.aspx" e "retornomeiopagamento.aspx", uma classe "util.cs" e o "web.config". Agora vamos ver as particularidades de cada um desses elementos.


iVarejo.Ecommerce.EAI.Conector.dll

Nós desenvolvemos esse conector para facilitar a vida do programador. Nele é encapsulada boa parte da lógica de integração: os métodos e objetos que são utilizados. Por hora é importante saber que esse conector provê acesso aos métodos e classes:

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.


default.aspx

Essa página trata do envio das informações do pedido para a iVarejo. Para tal, devemos preencher uma instância da classe "DadosPagamento" com todas as informações do pedido, de forma semelhante ao que é visto no método "protected void btnPagar_Click(object sender, EventArgs e)".

Em seguida, chamamos o método "IniciarPagamentoPedido
"
do conector, que iniciará o processo de pagamento.


retornomeiopagamento.aspx

No final do processo de pagamento, ou por conta de um erro, ou mesmo pelo cancelamento do consumidor, a iVarejo realiza um comando POST chamando a página de retorno do ecommerce. É quando o método "ObterRetornoMeioPagamento" é chamado e devemos tratar as informações que recebemos através de um objeto do tipo "RetornoPagamentoPedido", de forma semelhante ao que é visto no método "protected void Page_Load(object sender, EventArgs e)".


util.cs

Essa classe é utilizada apenas para gerar o número do pedido para esse exemplo. Não recomendamos a sua utilização no ecommerce.


web.config

Este arquivo é padrão para qualquer aplicação ASP .NET. Entretanto para a utilização do conector é necessário incluir as seguintes informações dentro da área <configuration> -> <appSettings>:

<add key="IVJ_URL_ENVIO_DADOS_PEDIDO" value="http://srvdes01/ecommerce.servicos/AppLevel/entradapedido.wsvc"/>

URL que forneceremos para o envio das informações do pedido.


<
add key="IVJ_URL_RETORNO_STATUS_MEIO_PAGAMENTO" value="http://srvdes01/ecommerce.servicos/AppLevel/retornoprocessamentopedido.wsvc"/>

URL que forneceremos para a requisição do retorno das informações do pagamento.


<
add key="IVJ_URL_REQUISICAO_SEGUNDA_VIA_BOLETOS" value="http://srvdes01/ecommerce.servicos/AppLevel/segundaviaboletos.wsvc"/>

URL que forneceremos para a requisição da segunda via dos boletos de um determinado pedido.


<
add key="IVJ_URL_PAGINA_RETORNO_ECOMMERCE" value="http://localhost/ExemploPopup/retornomeiopagamento.aspx"/>

URL da página de retorno do ecommerce.


Viu como é fácil? Utilize o conector e boa parte dos seus problemas estarão solucionados!  =)




No próximo post falaremos sobre o funcionamento interno do conector.



tags: #integracao, #xml

Fontes:

---
Comments