none
Post com Aspnet RRS feed

  • Pergunta

  • Pessoal, bom dia! O que vou perguntar aqui, chega a ser díficil de explicar mas talvez vocês possam dar uma luz...

     Eu tenho um projeto aqui, no caso da locaweb que se chama gateway de pagamento, tenho que enviar tdos os dados do usuário para a locaweb e a locaweb envia um retorno dizendo "aguardando pagamento" assim direcionando para a url da cielo.. ok..

    o exemplo deles é em Json, e eu preciso fazer em C#.. alguém tem alguma idéia? No caso eles falam que eu tenho que enviar todos os dados para este link:
    https://api-sandbox.gatewaylocaweb.com.br/v1/transacao, mas como posso enviar todos os dados abaixo para um link? Vocês sabem?

    NO caso o exemplo em Json é este:

      {
         "token":"3a5bbed0-50d4-012f-8d73-0026bb5a6240",
         "transacao":{
           "url_retorno":"http://www.minha-loja.com.br/confirmacao-pedido.php?id=12345",
           "capturar":"true",
           "pedido":{
              "numero":"6512",
              "total":"7630.00",
              "moeda":"real",
              "descricao":"Carrinho de Compras"
           },
           "pagamento":{
              "bandeira":"visa",
              "meio_pagamento":"cielo",
              "parcelas":"1",
              "tipo_operacao":"credito_a_vista"
           },
           "comprador":{
              "nome":"Bruna da Silva",
              "documento":"12345678900",
              "endereco":"Rua da Casa",
              "complemento":"Ap 82",
              "numero":"1",
              "cep":"09710240",
              "bairro":"Centro",
              "cidade":"São Paulo",
              "estado":"SP"
           }
         }
      }
    


    Douglas Bertelli

    terça-feira, 6 de novembro de 2012 11:34

Respostas

  • Olá Douglas. 

    Com json é possível voce criar estruturas complexas para transferencia de dados. Alem do mais, permite que sejam trafegadas somente as informações necessárias e com isso voce consegue um alto desempenho nestas transações.

    No caso da Locaweb, existe um projeto em C# no Codeplex que facilita a integração com o Gateway da Locaweb.

    O projeto pode ser visto aqui http://gatewaylocaweb.codeplex.com/

    Quanto a enviar os dados acima para a url, é bem simples. Use jQuery.

    <script type="text/javascript">
    	$(function () {
    		
    		function onCompleteRequest(data) {
    			alert('Pagamento enviado');
    		}
    
    		function onSuccessRequest(data, status) {
    			alert('Pagamento enviado');
    		}
    
    		function onErrorRequest(error) {
    			alert(error);
    		}
    
    		function enviarPagamento() {
    			var defaultParameters =
    			{
    				"token": "3a5bbed0-50d4-012f-8d73-0026bb5a6240",
    				"transacao":
    				{
    					"url_retorno": "http://www.sualoja.com.br/retorno", "capturar": "true",
    					"pedido": { "numero": "123", "total": "100.00", "moeda": "real", "descricao": "Camisa Xadrez" },
    					"pagamento": { "bandeira": "visa", "meio_pagamento": "redecard_ws", "cartao_numero": "4012001037141112", "cartao_cvv": "973", "cartao_validade": "082015", "parcelas": "1", "tipo_operacao": "credito_a_vista" },
    					"comprador": { "nome": "Nome do comprador", "documento": "12345678900", "endereco": "Rua da Casa", "complemento": "Ap 82", "numero": "1", "cep": "09710240", "bairro": "Centro", "cidade": "São Paulo", "estado": "SP" }
    				}
    			};
    
    			try {
    				$.ajax({
    					type: "POST",
    					url: "https://api-sandbox.gatewaylocaweb.com.br/v1/transacao",
    					data: defaultParameters,
    					contentType: "application/json; charset=utf-8",
    					dataType: "json",
    					complete: function (data) { onCompleteRequest(); },
    					success: (function (data, status) { onSuccessRequest(data, status); }),
    					error: (function (request, status, error) { onErrorRequest(error); })
    				});
    			} catch (e) { alert(e.Message); }
    
    		}
    
    		enviarPagamento();
    	});
    </script>		

    Abraços.


    Washington Luíz | MCP, MCTS
    O Senhor é minha força e somente Nele confio.

    • Sugerido como Resposta Vitor Mendes terça-feira, 6 de novembro de 2012 15:56
    • Marcado como Resposta Douglas Bertelli terça-feira, 6 de novembro de 2012 15:58
    terça-feira, 6 de novembro de 2012 15:44
  • Voce pode passar isso de várias formas. Objetos de sessão é uma dessas formas.

    Vamos supor que voce possua uma classe chamada DadosPedido e uma classe chamada Comprador como as classes abaixo:

    public class DadosPedido
    {
      public Comprador DadosComprador { get; set;}
    }
    
    public class Comprador
    {
      public string Nome {get;set;}
      public string Documento {get;set;}
      public string Endereco {get;set;}
      public string Complemento {get;set;}
      public string Numero {get;set;}
      public string CEP {get;set;}
    }

    Depois que o cliente fizer o pedido e voce preencher as informações do pedido, voce pode armazenar esses dados em sessão e passar isso ao jQuery. Uma forma de se conseguir isso, é voce pode passar diretamente no HTML.

    "comprador": { "nome": "<%= ((DadosPedido)Session["DadosPedido"]).Comprador.Nome %>" 
                   , "documento": "<% = ((DadosPedido)Session["DadosPedido"]).Comprador.Documento%>"
                   , "endereco": "<% = ((DadosPedido)Session["DadosPedido"]).Comprador.Endereco%>"
                   , "complemento": "<% = ((DadosPedido)Session["DadosPedido"]).Comprador.Complemento%>"
    	       , "numero": "<% = ((DadosPedido)Session["DadosPedido"]).Comprador.Numero%>"
    	       , "cep": "<% = ((DadosPedido)Session["DadosPedido"]).Comprador.CEP%>"

    Abraços


    Washington Luíz | MCP, MCTS
    O Senhor é minha força e somente Nele confio.

    • Marcado como Resposta Douglas Bertelli terça-feira, 6 de novembro de 2012 17:32
    terça-feira, 6 de novembro de 2012 16:39

Todas as Respostas

  • Olá Douglas. 

    Com json é possível voce criar estruturas complexas para transferencia de dados. Alem do mais, permite que sejam trafegadas somente as informações necessárias e com isso voce consegue um alto desempenho nestas transações.

    No caso da Locaweb, existe um projeto em C# no Codeplex que facilita a integração com o Gateway da Locaweb.

    O projeto pode ser visto aqui http://gatewaylocaweb.codeplex.com/

    Quanto a enviar os dados acima para a url, é bem simples. Use jQuery.

    <script type="text/javascript">
    	$(function () {
    		
    		function onCompleteRequest(data) {
    			alert('Pagamento enviado');
    		}
    
    		function onSuccessRequest(data, status) {
    			alert('Pagamento enviado');
    		}
    
    		function onErrorRequest(error) {
    			alert(error);
    		}
    
    		function enviarPagamento() {
    			var defaultParameters =
    			{
    				"token": "3a5bbed0-50d4-012f-8d73-0026bb5a6240",
    				"transacao":
    				{
    					"url_retorno": "http://www.sualoja.com.br/retorno", "capturar": "true",
    					"pedido": { "numero": "123", "total": "100.00", "moeda": "real", "descricao": "Camisa Xadrez" },
    					"pagamento": { "bandeira": "visa", "meio_pagamento": "redecard_ws", "cartao_numero": "4012001037141112", "cartao_cvv": "973", "cartao_validade": "082015", "parcelas": "1", "tipo_operacao": "credito_a_vista" },
    					"comprador": { "nome": "Nome do comprador", "documento": "12345678900", "endereco": "Rua da Casa", "complemento": "Ap 82", "numero": "1", "cep": "09710240", "bairro": "Centro", "cidade": "São Paulo", "estado": "SP" }
    				}
    			};
    
    			try {
    				$.ajax({
    					type: "POST",
    					url: "https://api-sandbox.gatewaylocaweb.com.br/v1/transacao",
    					data: defaultParameters,
    					contentType: "application/json; charset=utf-8",
    					dataType: "json",
    					complete: function (data) { onCompleteRequest(); },
    					success: (function (data, status) { onSuccessRequest(data, status); }),
    					error: (function (request, status, error) { onErrorRequest(error); })
    				});
    			} catch (e) { alert(e.Message); }
    
    		}
    
    		enviarPagamento();
    	});
    </script>		

    Abraços.


    Washington Luíz | MCP, MCTS
    O Senhor é minha força e somente Nele confio.

    • Sugerido como Resposta Vitor Mendes terça-feira, 6 de novembro de 2012 15:56
    • Marcado como Resposta Douglas Bertelli terça-feira, 6 de novembro de 2012 15:58
    terça-feira, 6 de novembro de 2012 15:44
  • Oi Washington, obrigado pelo retorno.

     Mas olha só, vou testar agora com jquery, mas me diz uma coisa, o ato de enviar os dados para a url já não é a integração com o gateway? Digo isto porque o projeto que está no Codeplex eu já tinha visto, mas é uma confusão para entender.


    Douglas Bertelli

    terça-feira, 6 de novembro de 2012 15:58
  • Mr. no caso aqui:

    "comprador": { "nome": "Nome do comprador", "documento": "12345678900", "endereco": "Rua da Casa", "complemento": "Ap 82", "numero": "1", "cep": "09710240"

    Eu tenho que passar via parametro este "Nome do comprador" / "123456" etc.. como eu posso fazer?


    Douglas Bertelli

    terça-feira, 6 de novembro de 2012 16:13
  • Oi Washington, obrigado pelo retorno.

     Mas olha só, vou testar agora com jquery, mas me diz uma coisa, o ato de enviar os dados para a url já não é a integração com o gateway? Digo isto porque o projeto que está no Codeplex eu já tinha visto, mas é uma confusão para entender.


    Douglas Bertelli

    Sim, ao passar os dados e enviar ao Gateway, já caracteriza a integração em si. O importante é voce trafegar estes dados em ambiente seguro (https), uma vez que isso é passado sem nenhuma criptografia, estes dados ficam vulneraveis e fáceis de serem interceptados.

    Washington Luíz | MCP, MCTS
    O Senhor é minha força e somente Nele confio.

    terça-feira, 6 de novembro de 2012 16:30
  • Opa, então.. mas é por isso que não passamos os dados do cartão.. só valor mesmo e nome tal..

    Blz, man vou fazer esta integração aí via jquery..vamos ver no q da.


    Douglas Bertelli

    terça-feira, 6 de novembro de 2012 16:34
  • Voce pode passar isso de várias formas. Objetos de sessão é uma dessas formas.

    Vamos supor que voce possua uma classe chamada DadosPedido e uma classe chamada Comprador como as classes abaixo:

    public class DadosPedido
    {
      public Comprador DadosComprador { get; set;}
    }
    
    public class Comprador
    {
      public string Nome {get;set;}
      public string Documento {get;set;}
      public string Endereco {get;set;}
      public string Complemento {get;set;}
      public string Numero {get;set;}
      public string CEP {get;set;}
    }

    Depois que o cliente fizer o pedido e voce preencher as informações do pedido, voce pode armazenar esses dados em sessão e passar isso ao jQuery. Uma forma de se conseguir isso, é voce pode passar diretamente no HTML.

    "comprador": { "nome": "<%= ((DadosPedido)Session["DadosPedido"]).Comprador.Nome %>" 
                   , "documento": "<% = ((DadosPedido)Session["DadosPedido"]).Comprador.Documento%>"
                   , "endereco": "<% = ((DadosPedido)Session["DadosPedido"]).Comprador.Endereco%>"
                   , "complemento": "<% = ((DadosPedido)Session["DadosPedido"]).Comprador.Complemento%>"
    	       , "numero": "<% = ((DadosPedido)Session["DadosPedido"]).Comprador.Numero%>"
    	       , "cep": "<% = ((DadosPedido)Session["DadosPedido"]).Comprador.CEP%>"

    Abraços


    Washington Luíz | MCP, MCTS
    O Senhor é minha força e somente Nele confio.

    • Marcado como Resposta Douglas Bertelli terça-feira, 6 de novembro de 2012 17:32
    terça-feira, 6 de novembro de 2012 16:39