Ir para conteúdo
Fórum Script Brasil
  • 0

incremento com carrinho do pagseguro


vdf

Pergunta

Estou com problemas para integrar meu carrinho de compras com o pagseguro.

Acredito que o problema ocorre na seguinte parte;

for ($i=0; $i<=4; $i++) {

$sql = "SELECT * FROM album WHERE id= '$id'";

$qr = mysql_query($sql) or die(mysql_error());

$ln = mysql_fetch_assoc($qr);

$nome = $ln['nome'];

$preço = number_format($ln['preço'], 2, ',', '.');

echo' <input type="hidden" name="item_id_'.$i.'" value='.$sql.'>

<input type="hidden" name="item_descr_'.$i.'" value='.$nome.'>

<input type="hidden" name="item_quant_'.$i.'" value='.$qtd.'>

<input type="hidden" name="item_valor_'.$i.'" value='.$preço.'>

<input type="hidden" name="item_frete_'.$i.'" value="0">

<input type="hidden" name="item_peso_'.$i.'" value="0"> ';

}

o código completo está aqui http://pastebin.com/NWT8z5jk

eu queria que ele passase os dados corretamente para o pag seguro, deveria ficar como o carrinho de compras do meu site;

carrinho de compras do meu site: http://img708.images...emttulo2gb.jpg/

carrinho do pagseguro: http://img502.images...emttulo4yh.jpg/

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Usei dessa forma para o pag seguro e pagamento digital foi bem funcional

$sql = "SELECT * FROM album WHERE id= '$id'";
$qr = mysql_query($sql) or die(mysql_error());

$i = 0;
While($ln=mysql_fetch_arrray($qr)){
$nome = $ln['nome'];
$preço = number_format($ln['preço'], 2, ',', '.');
$i++;
echo' "<input type='hidden' name='item_id_$i' value='$sql'>
<input type='hidden' name='item_descr_$i' value='$nome'>
<input type='hidden' name='item_quant_$i' value='$qtd'>
<input type='hidden' name='item_valor_$i' value='$preço'>
<input type='hidden' name='item_frete_$i' value='0'>
<input type='hidden' name='item_peso_$i' value='0'>";
}

Qualquer coisa posta ai..

Link para o comentário
Compartilhar em outros sites

  • 0

Está pegando somente o ultimo valor que foi adicionado ao carrinho, não está encrementando.

minha parte em php está assim

<?php

echo' <form target="pagseguro" method="post"

action="https://pagseguro.uol.com.br/checkout/checkout.jhtml">

<input type="hidden" name="email_cobranca" value="meuemail@hotmail.com">

<input type="hidden" name="tipo" value="CP">

<input type="hidden" name="moeda" value="BRL"> ';

$sql = "SELECT * FROM album WHERE id= '$id'";

$qr = mysql_query($sql) or die(mysql_error());

$i = 0;

While($ln=mysql_fetch_array($qr)){

$nome = $ln['nome'];

$preço = number_format($ln['preço'], 2, ',', '.');

$i++;

echo' <input type="hidden" name="item_id_'.$i.'" value='.$sql.'>

<input type="hidden" name="item_descr_'.$i.'" value='.$nome.'>

<input type="hidden" name="item_quant_'.$i.'" value='.$qtd.'>

<input type="hidden" name="item_valor_'.$i.'" value='.$preço.'>

<input type="hidden" name="item_frete_'.$i.'" value="0">

<input type="hidden" name="item_peso_'.$i.'" value="0">' ;

}

echo' <input type="hidden" name="tipo_frete" value="EN">

<input type="image" src="https://p.simg.uol.com.br/out/pagseguro/i/botoes/pagamentos/99x61-pagar-assina.gif"

name="submit" alt="Pague com PagSeguro - é rápido, grátis e seguro!">

</form> ';

?>

Editado por vdf
Link para o comentário
Compartilhar em outros sites

  • 0

Boa noite a variavel $id esta passando qual parametro para o banco?

Todos os registros do carrinho estao com esse mesmo id?

ex:

id_pedido = 100 - id_prod = 1 - quant = 1 - valor_prod = 20.00- nome_prod = Celular

id_pedido = 100 - id_prod = 10 - quant = 1 - valor_prod = 25.00- nome_prod = Carteira

na consulta SQL tem que ter esse parametro id_pedido igual pra todos os produtos que deseja incluir no loop, não sei se e o caso da sua variavel $id.

Editado por eudeoliveira
Link para o comentário
Compartilhar em outros sites

  • 0

eu só tenho o id do produto, então vou refazer meu Banco de dados e colocar o id_pedido, Muito obrigado pela ajuda.

Só mais uma pergunta, não tem como fazer isso sem usar o id_pedido?

O carrinho do site faz;

<?php

session_start();

if(!isset($_SESSION['carrinho'])){

$_SESSION['carrinho'] = array();

}

//adiciona produto

if(isset($_GET['acao'])){

//ADICIONAR CARRINHO

if($_GET['acao'] == 'add'){

$id = intval($_GET['id']);

if(!isset($_SESSION['carrinho'][$id])){

$_SESSION['carrinho'][$id] = 1;

}else{

$_SESSION['carrinho'][$id] += 1;

}

}

//REMOVER CARRINHO

if($_GET['acao'] == 'del'){

$id = intval($_GET['id']);

if(isset($_SESSION['carrinho'][$id])){

unset($_SESSION['carrinho'][$id]);

}

}

//ALTERAR QUANTIDADE

if($_GET['acao'] == 'up'){

if(is_array($_POST['prod'])){

foreach($_POST['prod'] as $id => $qtd){

$id = intval($id);

$qtd = intval($qtd);

if(!empty($qtd) || $qtd <> 0){

$_SESSION['carrinho'][$id] = $qtd;

}else{

unset($_SESSION['carrinho'][$id]);

}

}

}

}

}

?>

<?php

if(count($_SESSION['carrinho']) == 0){

echo '<tr><td colspan=5">Não há produto no carrinho</td></tr>';

}else{

require("conectdb.php");

$total = 0;

foreach($_SESSION['carrinho] as $id => $qtd){

$sql = "SELECT * FROM album WHERE id= '$id'";

$qr = mysql_query($sql) or die(mysql_error());

$ln = mysql_fetch_assoc($qr);

$nome = $ln['nome'];

$preço = number_format($ln['preço'], 2, ',', '.');

$sub = number_format($ln['preço'] * $qtd, 2, ',', '.');

$total += $ln['preço'] * $qtd;

echo '<tr>

<td>'.$nome.'</td>

<td>'.$qtd.'</td>

<td>R$ '.$preço.'</td>

<td>R$ '.$sub.'</td>

<td><a href="?acao=del&id='.$id.'">Remove</a></td>

</tr>';

}

$total = number_format($total, 2, ',', '.');

echo '<tr>

<td colspan="4"><b>Total</b></td>

<td><b>R$ '.$total.'</b></td>

</tr>';

}

?>

Link para o comentário
Compartilhar em outros sites

  • 0

você pode usar a varia session_id(); e derepente gravar junto com seu array carrinho, porem acho mais facil você colocar no banco para consulta futuras, fica como um codigo de rastreador do que foi comprado pelo cliente naquele dia.

ex:

$id_pedido = session_id();

então essa sua variavel $id_pedido vai ser a sessao ativa do browser daquele visitante não misturando as compras simultaneas.

Link para o comentário
Compartilhar em outros sites

  • 0

Consegui fazer com que ele passe a quantidade certa de produtos pro carrinho do pag seguro, agora só falta fazer com que não se repita o id do ultimo produto adicionado;

<?php

echo' <form target="pagseguro" method="post"

action="https://pagseguro.uol.com.br/checkout/checkout.jhtml">

<input type="hidden" name="email_cobranca" value="viniciusfasolin3@hotmail.com">

<input type="hidden" name="tipo" value="CP">

<input type="hidden" name="moeda" value="BRL"> ';

$sql = "SELECT * FROM album WHERE id= '$id'";

$qr = mysql_query($sql) or die(mysql_error());

$ln = mysql_fetch_assoc($qr);

$lim = count($_SESSION['carrinho']);

for($i=0 ; $i<=$lim ; $i++){

$nome = $ln['nome'];

$preço = number_format($ln['preço'], 2, ',', '.');

echo'

<input type="hidden" name="item_id_'.$i.'" value='.$sql.'>

<input type="hidden" name="item_descr_'.$i.'" value='.$nome.'>

<input type="hidden" name="item_quant_'.$i.'" value='.$qtd.'>

<input type="hidden" name="item_valor_'.$i.'" value='.$preço.'>

<input type="hidden" name="item_frete_'.$i.'" value="0">

<input type="hidden" name="item_peso_'.$i.'" value="0">' ;

}

echo' <input type="hidden" name="tipo_frete" value="EN">

<input type="image" src="https://p.simg.uol.com.br/out/pagseguro/i/botoes/pagamentos/99x61-pagar-assina.gif"

name="submit" alt="Pague com PagSeguro - é rápido, grátis e seguro!">

</form> ';

?>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...