Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lab Design

[Resolvido] Retorno automático

Recommended Posts

Galera, estou implementado na loja de um cliente com carrinho próprio ou seja, todo o processo de seleção dos produtos é feito diretamente na loja e somente após clicar no botão finalizar a compra que é enviado ao pagseguro.

 

A loja está em C#

 

Dúvidas:

1) Estou utilizando o componente UOL.PagSeguro.dll disponibilizado na página e configurado de acordo com o vídeo apresentado pelo desenvolvedor.

- O meu primeiro problema é que o componente utiliza campo int para peso dos itens e no meu caso são livros, portanto os pesos são inferiores a 1 kg.

- Em localhost, o acesso ao pagseguro disponibiliza ao usuário seleção de forma de envio como primeira tela enquanto que a loja após publicada, a primeira tela apresentada ao usuário é a seleção da forma de pagamento ou seja, não sei porque motivo já que o código fonte é o mesmo, ele não apresenta a forma de envio para seleção.

 

2) Foi configurado corretamente a página de retorno no pagseguro, gerado o token e configurado o componente com este token porém a página parece não retornar nenhum dado ou seja, não aciona os modulos para atualizar a base de dados.

 

abaixo: código da pagina de retorno:

 

protected void Page_Load(object sender, EventArgs e)

{

//this.RetornoPagSeguro1.UrlNPI = "http://localhost:9090/pagseguro-ws/checkout/NPI.jhtml";

//Session["pedId"] = 1115;

//Session["usrId"] = 1;

}

 

protected void RetornoPagSeguro1_VendaEfetuada(UOL.PagSeguro.RetornoVenda retornoVenda)

{

//Obtendo o número do Pedido

idPedido = int.Parse(retornoVenda.CodigoReferencia);

 

//Obtendo o código da transação no PagSeguro

string codTrans = retornoVenda.CodigoTransacao;

 

//Obtendo o novo status do pedido

string strStatus = retornoVenda.StatusTransacaoDescricao;

 

//Obtendo a forma de pagamento utilizada

string formaPgto = retornoVenda.TipoPagamentoDescricao;

 

//Obtendo a forma de pagamento utilizada

string formaEnvio = retornoVenda.TipoFreteDescricao;

 

//Obtendo o valor pago pelo frete

decimal taxaEnvio = Convert.ToDecimal(retornoVenda.ValorFrete);

 

//Obtendo a anotação deixada pelo cliente no momento do pagamento

string obs = retornoVenda.Anotacao;

 

int parcelas = retornoVenda.Parcelas;

 

//Atualizando na base de dados o status do pedido e as outras informações

string sql = string.Format("UPDATE pedidoS SET taxaEnvio={0}, formaEnvio='{1}', formaPgto='{2}', obs='{3}', codTrans='{4}', total=subTotal + taxaEnvio, parcelas={5}, statusRet='{6}' WHERE idPedido={7}",

taxaEnvio, formaEnvio, formaPgto, obs, codTrans, parcelas, strStatus, idPedido);

SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["JairoString"].ConnectionString);

SqlCommand cmd = new SqlCommand(sql, con);

cmd.CommandType = CommandType.Text;

using (con)

{

con.Open();

cmd.ExecuteNonQuery();

}

/*

SqlCommand cmd2 = new SqlCommand(string.Format("SELECT idCadastro FROM pedidos WHERE idPedido={0}", idPedido), con);

cmd2.CommandType = CommandType.Text;

using (con)

{

con.Open();

SqlDataReader reader = cmd.ExecuteReader();

idCadastro = Convert.ToInt32(reader["idCadastro"]);

}

*/

Session.RemoveAll();

}

 

 

 

protected void RetornoPagSeguro1_VendaNaoAutenticada(object sender, UOL.PagSeguro.VendaNaoAutenticadaEventArgs e)

{

//Aqui dispara quando o PagSeguro retorna algo diferente de verificado

}

 

 

 

protected void RetornoPagSeguro1_FalhaProcessarRetorno(object sender, UOL.PagSeguro.FalhaProcessarRetornoEventArgs e)

{

//Aqui dispara quando dá algum problema de parse nos dados

}

 

 

 

protected void RetornoPagSeguro1_RetornoVerificado(object sender, UOL.PagSeguro.VendaAutenticadaEventArgs e)

{

//Aqui dispara quando é obtido o retorno VERIFICADO do PagSeguro. Este método é disparado antes do RetornoPagSeguro1_VendaEfetuada

}

 

Onde estou errando?

O usuário finaliza a compra, inclusive imprimi alguns boletos, verifiquei no extrato e ta constando la o pedido somente aguardando o pagamento mas caso o usuário venha a cancelar la no pagseguro como eu saberia já que aparentemente não tá retornando nada.

 

Agradeço qualquer ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) Estou utilizando o componente UOL.PagSeguro.dll disponibilizado na página e configurado de acordo com o vídeo apresentado pelo desenvolvedor.

- O meu primeiro problema é que o componente utiliza campo int para peso dos itens e no meu caso são livros, portanto os pesos são inferiores a 1 kg.

- Em localhost, o acesso ao pagseguro disponibiliza ao usuário seleção de forma de envio como primeira tela enquanto que a loja após publicada, a primeira tela apresentada ao usuário é a seleção da forma de pagamento ou seja, não sei porque motivo já que o código fonte é o mesmo, ele não apresenta a forma de envio para seleção.

 

2) Foi configurado corretamente a página de retorno no pagseguro, gerado o token e configurado o componente com este token porém a página parece não retornar nenhum dado ou seja, não aciona os modulos para atualizar a base de dados.

 

- O valor a ser enviado para o PagSeguro é em gramas. Veja em : https://pagseguro.uo...o_proprio.jhtml

"Informe em gramas, o peso total dos produtos à venda. Para 1kg informe 1000 e para 30g informe 30."

 

- Verifique se os requests e responses estão setados como ISO-8859-1 dentro do web.config;

<system.web> 

<globalization requestEncoding="iso-8859-1" responseEncoding="iso-8859-1" /> ...
</system.web>

 

- Verifique na sua conta do pagSeguro, se seu frete está por peso.

https://pagseguro.uo...igFreight.jhtml

 

Caso seja interessante dê uma olhada nesse link -

http://code.google.c...agsegurodotnet/

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) Estou utilizando o componente UOL.PagSeguro.dll disponibilizado na página e configurado de acordo com o vídeo apresentado pelo desenvolvedor.

- O meu primeiro problema é que o componente utiliza campo int para peso dos itens e no meu caso são livros, portanto os pesos são inferiores a 1 kg.

- Em localhost, o acesso ao pagseguro disponibiliza ao usuário seleção de forma de envio como primeira tela enquanto que a loja após publicada, a primeira tela apresentada ao usuário é a seleção da forma de pagamento ou seja, não sei porque motivo já que o código fonte é o mesmo, ele não apresenta a forma de envio para seleção.

 

2) Foi configurado corretamente a página de retorno no pagseguro, gerado o token e configurado o componente com este token porém a página parece não retornar nenhum dado ou seja, não aciona os modulos para atualizar a base de dados.

 

- O valor a ser enviado para o PagSeguro é em gramas. Veja em : https://pagseguro.uo...o_proprio.jhtml

"Informe em gramas, o peso total dos produtos à venda. Para 1kg informe 1000 e para 30g informe 30."

 

- Verifique se os requests e responses estão setados como ISO-8859-1 dentro do web.config;

<system.web> 

<globalization requestEncoding="iso-8859-1" responseEncoding="iso-8859-1" /> ...
</system.web>

 

- Verifique na sua conta do pagSeguro, se seu frete está por peso.

https://pagseguro.uo...igFreight.jhtml

 

Caso seja interessante dê uma olhada nesse link -

http://code.google.c...agsegurodotnet/

 

 

Valeu amigão, vou verificar e posto novamente se funcionou, depois ainda tenho que implantar um cielo em outro e vai ser outra pedreira

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) Estou utilizando o componente UOL.PagSeguro.dll disponibilizado na página e configurado de acordo com o vídeo apresentado pelo desenvolvedor.

- O meu primeiro problema é que o componente utiliza campo int para peso dos itens e no meu caso são livros, portanto os pesos são inferiores a 1 kg.

- Em localhost, o acesso ao pagseguro disponibiliza ao usuário seleção de forma de envio como primeira tela enquanto que a loja após publicada, a primeira tela apresentada ao usuário é a seleção da forma de pagamento ou seja, não sei porque motivo já que o código fonte é o mesmo, ele não apresenta a forma de envio para seleção.

 

2) Foi configurado corretamente a página de retorno no pagseguro, gerado o token e configurado o componente com este token porém a página parece não retornar nenhum dado ou seja, não aciona os modulos para atualizar a base de dados.

 

- O valor a ser enviado para o PagSeguro é em gramas. Veja em : https://pagseguro.uo...o_proprio.jhtml

"Informe em gramas, o peso total dos produtos à venda. Para 1kg informe 1000 e para 30g informe 30."

 

- Verifique se os requests e responses estão setados como ISO-8859-1 dentro do web.config;

<system.web> 

<globalization requestEncoding="iso-8859-1" responseEncoding="iso-8859-1" /> ...
</system.web>

 

- Verifique na sua conta do pagSeguro, se seu frete está por peso.

https://pagseguro.uo...igFreight.jhtml

 

Caso seja interessante dê uma olhada nesse link -

http://code.google.c...agsegurodotnet/

 

 

Valeu amigão, vou verificar e posto novamente se funcionou, depois ainda tenho que implantar um cielo em outro e vai ser outra pedreira

Abraço

 

 

Fiz os ajustes para o peso e agora pelo menos na página do pagseguro o cliente pode selecionar a forma de envio.

Agora o retorno parece que não deu certo ainda. Localmente está funcionado testando com o programa de teste em offline.

Após o processamento a página de retorno é mostrada ao usuário porém sem as informações retornadas do gateway.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ufaaaaaaaaaaaaaaa!!!

 

Caramba que pedreira.

 

Mas no final deu tudo certo e já ta funcionando o retorno automatico, atualizando a tabela de pedidos normalmente e o principal, apresentando os dados retornados do gateway ao cliente.

 

Realmente é muito prático esse componente fornecido pela Uol.

 

Parabéns ao(s) desenvolvedor(res) pela iniciativa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.