Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS

Moderador: web

 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

Integração com pagseguro

07-08-2012 13:57

Boa tarde galera, estou desenvolvendo um sistema de e-commerce...
preciso fazer a integração com o pagseguro peguei a documentação oficial porém estou tendo alguns problemas...

//pega id comprador $comprador = $_GET['idUser']; if(!isset($comprador)){ header('Location: painel.php'); } $lerCarro = read("teste_carro","WHERE idCompras = '$comprador'"); if($lerCarro < 0){ echo 'Carrinho vazio'; }else{ $vendaPagueSeguro = new PagSeguroPaymentRequest(); $lerComprador = read("teste_comprador","WHERE idAdress = '$comprador'"); foreach($lerComprador as $ddsC): $login = $ddsC['idAdress']; $lerCarro = read("teste_carro","WHERE idCompras = '$comprador'"); foreach($lerCarro as $dados): $idCel = $dados['idProd']; $lerAparelho = read("aparelhos","WHERE id = '$idCel'"); if($lerAparelho){ foreach($lerAparelho as $Aparelho): $nomeCel = $Aparelho['nome']; $valor = $Aparelho['preco']; $qnt = $dados['quantidade']; $preco = $qnt * $valor; $preco = formata($preco); echo '<tr>'; echo '<td>'.$nomeCel.'</td><td align="center">'.$qnt.'</td><td align="center">R$ '.$preco.'</td>'; echo '</tr>'; $paymentRequest->addItem($idCel, $nomeCel, $qnt,$valor); endforeach; } endforeach; endforeach; }

quando jogo o objeto ele para de retornar os demais produtos passando a mostrar somente o primeiro da lista. E também da erro no checkout do pagseguro!
:(
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Integração com pagseguro

07-08-2012 15:01

Qual erro é mostrado? Qual documentação está usando?

Segue o link dos módulos e bibliotecas do PagSeguro.
https://pagseguro.uol.com.br/desenvolve ... ecas.jhtml
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

Integração com pagseguro

07-08-2012 15:22

Estou utilizando a API de pagamentos... quando jogo os itens de pagamento por meio de variaveis ele aponta como item invalido - BAD REQUEST
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Integração com pagseguro

07-08-2012 15:27

Qual link da API? Como está enviando?
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

Integração com pagseguro

07-08-2012 15:45

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Integração com pagseguro

07-08-2012 15:57

Tem que ver alguns pontos. O primeiro é a compatibilidade com seu PHP.

A Biblioteca PagSeguro em PHP é compatível com a versão 5.1.6 (ou superior) do PHP.

Também o script do PagSeguro, vem com alguns exemplos, tem que ver como você está pegando esses valores. Porque o erro pode estar ai.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

Integração com pagseguro

07-08-2012 16:02

Então já fiz alguns teste e não tenho nenhum problema de compatibilidade...
acredito que meu problema esteja no loop... mais ainda não consegui resolver!

pq preciso fazer o seguinte recuperar os valores de duas tabelas sql diferentes para então passar para o pagseguro!
:(
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Integração com pagseguro

07-08-2012 17:20

Tem 2 pontos. Um é saber os valores e relações entre as tabelas, para saber a query adequada. E outra é saber o formato que os valores vão precisar ter para o PagSeguro. Está com problema em qual?
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

Integração com pagseguro

07-08-2012 17:47

Possuo três tabelas: comprador, aparelhos e carro;
comprador armazena os dados do comprador,
aparelhos armazena as infos do produto,
e carro armazena os produtos adicionados pelo cliente - carrinho.

os valores de moeda estão sendo escritos no bd da seguinte maneira: 599 ou 1999;
realizo uma formatação para retorná-lo na tela e fazer correspondência com a moeda
ex: R$ 599,00 ou R$ 1.999,00

estou utilizando o loop foreach para ler esses dados e separar as infos que retornaram na sql
a minha query faz a leitura onde existir o $comprador que é a ligação entre os dados das tabelas;

Acredito que possa existir uma maneira mais fácil para fazer esta relação, porém foi a maneira que encontrei...

independente do valor que jogo ele traz o erro de requisição - BAD REQUEST.
Ex: pelo o nome do aparelho e passo para $nomeCel = $aparelhos['nome']; ele retorna como nome inexistente!

:wasntme:
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Integração com pagseguro

07-08-2012 18:33

O ideal é usar uma query para consulta, e ao invés de usar o foreach usar o while na consulta para montar os dados.

Como tem que ficar o resultado? Posta um exemplo do pagseguro pronto.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

Integração com pagseguro

08-08-2012 12:02

Fiz com while utilizei apenas uma query e nada...
$sql = "SELECT * FROM teste_pedido ORDER BY nomeprod ASC"; $res = mysql_query($sql); $vendaPagueSeguro = new PagSeguroPaymentRequest(); $cont = 0; // Exibe o resultado da nossa consulta while ($row = mysql_fetch_array($res)) { // Zebramos nossa linha da tabela onde pegamos o cont dividimos por 2 // se o resto for zero mostramos uma cor, se não for mostramos outra $idcompra = $row['idprod']; $nomeprod = $row['nomeprod']; $qnt = $row['quantprod']; $valor = $row['valorprod']; echo "<tr>"; echo "<td>".$nomeprod."</td>"; echo "<td align='center'>".$qnt."</td>"; echo "<td align='center'> R$ ".formata($valor)."</td>"; echo "</tr>"; $cont = $cont + 1; $paymentRequest->addItem($idcompra, $nomeprod, $qnt,$valor); }

o problema acontece quando insiro esta linha:
$paymentRequest->addItem($idcompra, $nomeprod, $qnt,$valor);

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Integração com pagseguro

08-08-2012 12:10

Com valores fixos, sem a query, essa linha funciona?

$paymentRequest->addItem($idcompra, $nomeprod, $qnt,$valor);

Dá para repetir essa linha sem problema, usando valores fixos?
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

Integração com pagseguro

08-08-2012 12:16

Esta linha com valores fixos funciona sem problema nenhum;
ela pode ser repetida quantas vezes for necessário...
o o exemplo do pagseguro;
// Instantiate a new payment request $paymentRequest = new PagSeguroPaymentRequest(); // Sets the currency $paymentRequest->setCurrency("BRL"); // Add an item for this payment request $paymentRequest->addItem('0001', 'Notebook prata', 2,430.00); // Add another item for this payment request $paymentRequest->addItem('0002', 'Notebook rosa', 2,560.00); // Sets a reference code for this payment request, it is useful to identify this payment in future notifications. $paymentRequest->setReference("REF1234");

0
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

Integração com pagseguro

08-08-2012 14:30

Meu loop depois de muita pesquisa, ficou assim:
agora ele dá o aviso:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-12.0\www\compras\bkpfinal.php on line 53
[HTTP 400] - BAD_REQUEST [11024] - Items invalid quantity.

$sql = "SELECT * FROM teste_pedido ORDER BY nomeprod ASC"; $res = mysql_query($sql); $cont = 0; // Exibe o resultado da nossa consulta while($row = mysql_fetch_array($res)) { // Zebramos nossa linha da tabela onde pegamos o cont dividimos por 2 // se o resto for zero mostramos uma cor, se não for mostramos outra $idcompra = $row['idprod']; $nomeprod = $row['nomeprod']; $qnt = $row['quantprod']; $valor = $row['valorprod']; $paymentRequest->addItem($idcompra, $nomeprod, $qnt,$valor); $cont = $cont + 1; }

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Integração com pagseguro

08-08-2012 15:46

Baseado no exemplo que funciona, você tem que ter o seguinte antes do loop

$paymentRequest = new PagSeguroPaymentRequest();
$paymentRequest->setCurrency("BRL");

Dentro do loop

$paymentRequest->addItem('id', 'produto', valor);

Fora do loop

$paymentRequest->setReference("REF1234");

Me baseei no seu exemplo, supondo que a linha que coloquei dentro do loop, vai vir com os valores do seu bd.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

Integração com pagseguro

08-08-2012 18:23

então fiz como vc disse e de outras formas, mais olha o erro
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-12.0\www\compras\bkpfinal.php on line 53
[HTTP 400] - BAD_REQUEST [11024] - Items invalid quantity.
0
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

Integração com pagseguro

08-08-2012 18:24

o erro permanece no loop!
$paymentRequest = new PagSeguroPaymentRequest(); // Sets the currency $paymentRequest->setCurrency("BRL"); $sql = "SELECT * FROM teste_pedido ORDER BY nomeprod ASC"; $res = mysql_query($sql); $cont = 0; // Exibe o resultado da nossa consulta while($row = mysql_fetch_array($res)) { // Zebramos nossa linha da tabela onde pegamos o cont dividimos por 2 // se o resto for zero mostramos uma cor, se não for mostramos outra $idcompra = $row['idprod']; $nomeprod = $row['nomeprod']; $qnt = $row['quantprod']; $valor = $row['valorprod']; $paymentRequest->addItem('0002', 'Notebook rosa', 2,560.00); $cont = $cont + 1; } // Sets a reference code for this payment request, it is useful to identify this payment in future notifications. $paymentRequest->setReference("REF1234");

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Integração com pagseguro

08-08-2012 18:51

O que tem nessa linha 53?
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

Integração com pagseguro

09-08-2012 09:51

Na linha esta o loop...
o erro
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-12.0\www\compras\bkpfinal.php on line 53

Conseguir corrigir era um problema da consulta sql....
agora o problema é outro quando passo o
$paymentRequest->addItem('0002', 'Notebook rosa', 2,560.00);


Para dentro do loop ele da o bad request quando retiro ele flui...
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Integração com pagseguro

09-08-2012 10:02

Verifica se não é o formato dos valores, no

$paymentRequest->addItem('0002', 'Notebook rosa', 2,560.00);
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

Integração com pagseguro

09-08-2012 10:15

Deste jeito
$paymentRequest->addItem('0002', 'Notebook rosa', 2,560.00);

Fora do Loop funciona, que é exatamente como manda a API do pagseguro
quando passo para dentro do loop ele retorna o bad request
vou postar o código completo para vc ver...
1-estou usando o carrinho em bd pq assim depois consigo fazer uma analise do itens mais comprados ou os mais interessantes para os clientes!
2-como chave para busca uso o usuario que é passado quando o usuário completa o cadastro; e assim recupero todos os produtos e dados do cliente.
3-e monto a tabela pedido que é quando o cliente não vai mais adicionar produtos a tabela.
4-chamo o arquivo que fará a integração com o pagseguro e o loop de consulta - que é onde está o problema.

segue o código
// Sets the currency $paymentRequest->setCurrency("BRL"); $sql = "SELECT * FROM teste_pedido WHERE idAdress = '$user'"; $res = mysql_query($sql); $cont = 0; // Exibe o resultado da nossa consulta while($row = mysql_fetch_array($res)) { // Zebramos nossa linha da tabela onde pegamos o cont dividimos por 2 // se o resto for zero mostramos uma cor, se não for mostramos outra $idcompra = $row['idprod']; $nomeprod = $row['nomeprod']; $qnt = $row['quantprod']; $valor = $row['valorprod']; $paymentRequest->addItem('002', 'notebook', 2, 560.00); $cont = $cont + 1; } //$paymentRequest->addItem('0002', 'Notebook rosa', 2,560.00); // Sets a reference code for this payment request, it is useful to identify this payment in future notifications. $paymentRequest->setReference("REF1234");

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Integração com pagseguro

09-08-2012 11:08

Pode ser 2 problemas. Ou não está tendo nenhum retorno na query, ou seja, não retorna nenhum resultado na query, deixando a linha do loop sem ser executada.
Ou talvez algum desses valores tenham que estar dentro do loop, como o

$paymentRequest->setCurrency("BRL");

Talvez você também tenha que iniciar a class no mesmo documento

$paymentRequest = new PagSeguroPaymentRequest();

Tem também uma área de perguntas sobre o PagSeguro, talvez você consiga tirar essa dúvida por lá
https://pagseguro.uol.com.br/atendiment ... ntes.jhtml
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

Integração com pagseguro

09-08-2012 12:49

pesquisando aqui consegui uma outra forma que está enviado para o pagseguro....
valor, quantidade nome tudo certo;
contudo ele esta passando apenas um produto, o úlitmo da linha!
e não faço a meno idéia de como criar um loop para isso isso...
segue o código:
consulto e passo os dados
while ($row = mysql_fetch_array($res)) { $nomecliente = $row['nome']; $email = $row['email']; $idcompra = $row['idprod']; $nomeprod = $row['nomeprod']; $qnt = $row['quantprod']; $valor = $row['valorprod']; echo "<tr>"; echo "<td>".$row['nomeprod']."</td>"; echo "<td align='center'>".$row['quantprod']."</td>"; echo "<td align='center'> R$ ".formata($row['valorprod'])."</td>"; echo "</tr>"; echo '<form method="post"> <input type="hidden" value="'.$nomecliente.'" name="nome" /> <input type="hidden" value="'.$email.'" name="email" /> <input type="hidden" value="'.$nomeprod.'" name="nome_prod" /> <input type="hidden" value="'.$idcompra.'" name="id_prod" /> <input type="hidden" value="'.$qnt.'" name="quant_prod" /> <input type="hidden" value="'.$valor.'" name="valor_prod" /> '; $cont = $cont + 1; } echo '<input type="submit" value="PAGAR" name="pagar" /> </form>';

recebo e envio para pagseguro
$data['itemId1'] = $iprod; $data['itemDescription1'] = $nProd; $data['itemAmount1'] = $valor; $data['itemQuantity1'] = $qnt; $data['itemWeight1'] = '1000';

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Integração com pagseguro

09-08-2012 16:58

Se o envio do produto é um por vez, você tem que abrir e fechar o form dentro do while. Observe para a estrutura ficar assim

while...
echo "<form...
<table...


</table></form>
} // fim do while
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

Integração com pagseguro

09-08-2012 18:28

E para pegar as informações?
0

Quem está online

Usuários navegando neste fórum: Bing [Bot]