Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
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.
Carregando comentários...