Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Eu implementei no meu sistema o serviço do PagSeguro como mostra abaixo:
>
Protected Sub btnContinua4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnContinua4.Click
Dim Ds As Data.DataSet
Ds = Inscricao.ConsultaAvancada(" B.Aluno_CPF = '" & LbCPF.Text & "' " & _
" AND A.Oferta_ID = " & ViewState("Oferta") & _
" AND C.Curso_ID = " & ViewState("Curso"), "")
Dim pDados As New UOL.PagSeguro.Produto
pDados.Codigo = Ds.Tables(0).Rows(0)("ACurso_ID")
pDados.Descricao = Ds.Tables(0).Rows(0)("ACurso_ID") & " - " & Ds.Tables(0).Rows(0)("Aluno_CPF")
pDados.Valor = LbValor.Text
pDados.Quantidade = 1
pDados.Frete = 0
pDados.Peso = 0
Me.VendaPagSeguro1.Produtos.Add(pDados)
Me.VendaPagSeguro1.CodigoReferencia = Ds.Tables(0).Rows(0)("ACurso_ID")
Me.VendaPagSeguro1.EmailCobranca = "seccontabil@seccontabil.com.br"
Me.VendaPagSeguro1.Moeda = "BRL"
Me.VendaPagSeguro1.TipoFrete = UOL.PagSeguro.TipoFreteVenda.DefinidoPeloCliente
Me.VendaPagSeguro1.Executar(Me.Response)
End Sub
mas quando executo o componente aparece a mensagem abaixo:
>
Transação inválida. Sempre inicie transações a partir de sites confiáveis.
Alguém sabe como posso corrigir isso? Preciso colocar algo no web.config?
Grato,
Ilano
Olá Dan Borges,
Liberei o pagamento via api como mostram os links que você postou. Mas agora está retornando o erro:
Fiz o breakpoint e todas as informações estão sendo passadas para o componente. O que está faltando?
Outra coisa, pesquisando na internet, encontrei o código abaixo. Mas está dando erro quando aplico no meu projeto.
>
Protected Sub Button1_Click(sender As Object, e As EventArgs)
Carrinho.Instancia.Adicionar(Integer.Parse(DirectCast(sender, Button).CommandArgument), 1)
Me.AtualizarStatus()
End Sub
Protected Sub btnLimpar_Click(sender As Object, e As ImageClickEventArgs)
Me.LimparCarrinho()
End Sub
Protected Sub btnComprar_Click(sender As Object, e As ImageClickEventArgs)
'Somente executa se tiver itens
If Carrinho.Instancia.TemItens Then
'Carregando a tabela
Dim tabela As New CarsDataSet.CarsDataTable()
Dim adapter As New CarsDataSetTableAdapters.CarsTableAdapter()
adapter.Fill(tabela)
'Varrendo os itens
For Each codigo As Integer In Carrinho.Instancia.CodigosDosItens
Dim quantidade As Integer = Carrinho.Instancia.ObterQuantidadeDoItem(codigo)
Dim registro As CarsDataSet.CarsRow = tabela.FindByCodigo(codigo)
Dim produto As New Produto()
produto.Codigo = codigo.ToString()
produto.Descricao = String.Format("{0} {1}", registro.Marca, registro.Modelo)
produto.Quantidade = quantidade
produto.Valor = registro.Valor
Me.VendaPagSeguro1.Produtos.Add(produto)
Next
'Grave o seu pedido no banco de dados
Dim acessoDados As New AcessoDados()
Dim codigo_pedido As Integer = acessoDados.GravarPedido(Carrinho.Instancia)
'Limpando o Carrinho
Me.LimparCarrinho()
'Efetuando a venda
Me.VendaPagSeguro1.CodigoReferencia = codigo_pedido.ToString()
'Código do Compra
Dim cliente As New Cliente()
cliente.Nome = "Danilo Molina"
cliente.Cep = "14403456"
cliente.Endereco = "Rua"
cliente.Numero = "149"
cliente.ComplementoEndereco = "teste"
cliente.Bairro = "Vila Chico Julio"
cliente.Cidade = "Guará"
cliente.Uf = "SP"
cliente.Pais = "BRA"
cliente.DDD = 16
cliente.Telefone = 39898909
cliente.Email = "danilo@teste.com.br"
Me.VendaPagSeguro1.Executar(Me.Response)
End If
End Sub
Erros que aparecem:
Como posso alterar esse código para o meu que está no início do post? Só tá faltando isso para realizar as vendas dos cursos que já vão se iniciar no final dessa semana, por favor me ajudem a implementar meu código corretamente.
Nunca usei a API do PagSeguro. Mas verifique quais são os valores passados para as propriedades, por exemplo:
pDados.Valor = LbValor.Text
A propriedade Valor recebe uma string mesmo?
Sobre o código de terceiros, fica difícil, ele implementou muito mais do que esse trecho do código, por isso os erros de tipos não definidos.
Pois é, eu já fiz o break point para acompanhar todos os processos e sim são passados os valores para as propriedades, inclusive para LbValor.
Esse erro é falta de instanciamento de classe, acontece quando você tem algum lugar referenciando uma variável "Carrinho" que não existe.
Dim cliente As New Cliente()
Provavelmente sua classe Cliente não existe ou então você não importou o namespace da mesma
A variável 'AcessoDados' não existe no código, o correto é 'acessoDados', leia seu código com atenção e lembre-se de que variáveis são SEMPRE case sensitive.
Mesmo caso do cliente
Pois é, eu já fiz o break point para acompanhar todos os processos e sim são passados os valores para as propriedades, inclusive para LbValor.
Se não conseguir resolver entre em contato com a equipe técnica responsável pela api do Pagseguro.
Veja se ajuda:
https://pagseguro.uol.com.br/atendimento/perguntas_frequentes/categoria/como-vender/integracao/o-que-significa-o-erro-transacao-invalida-sempre-inicie-transacoes-a-partir-de-sites-confiaveis.jhtml#rmcl
http://blogpagseguro.com.br/2011/09/dicas-api-transacao-invalida-checkout/