Página 1 de 1

Botão para pagar por PagSeguro no Order_Info.tpl [Resolvido]

Enviado: 24 Fev 2012, 18:05
por brunobld
Muito acontece do cliente que opta pelo PagSeguro efetuar a compra e pagar apenas no outro dia, perdendo o link do botão após efetuada a compra.

Achei um tópico aqui no fórum, tentei configurálo, porém não tive sucesso. Estou usando o seguinte:
Código: Selecionar todos
<form target="pagseguro" method="post" action="https://pagseguro.uol.com.br/v2/checkout/payment.html">  
      
    <!-- Campos obrigatórios -->  
    <input type="hidden" name="receiverEmail" value="email_da_loja">  
    <input type="hidden" name="currency" value="BRL">  
      
    <!-- Itens do pagamento (ao menos um item é obrigatório) -->  
    <input type="hidden" name="itemId1" value="<?php echo $order_id; ?>">  
    <input type="hidden" name="itemDescription1" value="Pedido: <?php echo $order_id; ?>">  
    <input type="hidden" name="itemAmount1" value="<?php   echo eregi_replace("([^0-9])","",$order['total']) ; ?>">  
    <input type="hidden" name="itemQuantity1" value="1">  
      
    <!-- submit do form (obrigatório) -->  
    <input type="image" name="submit"   
    src="https://p.simg.uol.com.br/out/pagseguro/i/botoes/pagamentos/120x53-pagar.gif"   
    alt="Pague com PagSeguro">  
      
</form>
Quando clico no link, vou para o PagSeguro e aparece a mensagem: "O VALOR do item 1 deve ser numérico e ter formato válido."

Ai para testar mudei a linha de:
Código: Selecionar todos
<input type="hidden" name="itemAmount1" value="<?php   echo eregi_replace("([^0-9])","",$order['total']) ; ?>">  
Para:
Código: Selecionar todos
<input type="hidden" name="itemAmount1" value="59.00">
O script funcionou normalmente, inclusive puxando a descrição com o número do pedido.

Tentei usar um simples "<?php echo $total; ?>" mas também não funcionou.

O formato do PagSeguro para o valor é "100.00" para R$100,00 por exemplo.

Alguma outra forma de puxar o valor total da compra para gerar esse botão sem que tenha esse erro falando sobre o valor numérico?

Abs!

Re: Botão para pagar por PagSeguro no Order_Info.tpl

Enviado: 24 Fev 2012, 18:08
por brunobld
Se não me engano está dando erro pois está vindo junto o R$ também e no caso é só preciso o valor número com decimal.

Re: Botão para pagar por PagSeguro no Order_Info.tpl

Enviado: 24 Fev 2012, 18:27
por brunobld
Descobri "metade" da solução.

O código correto é:
Código: Selecionar todos
<?php echo $total['value']; ?>
Para vocês programadores isso deveria ser óbvio, mas estou na luta e aprendendo aqui! ;)

Agora o restante da questão é que puxando esse comando ele vem com 4 casas decimais, e o PagSeguro só aceita duas.

Como posso proceder?

Re: Botão para pagar por PagSeguro no Order_Info.tpl

Enviado: 24 Fev 2012, 19:03
por Renato Frota
Código: Selecionar todos
<?php echo round($total['value'],2); ?>

Re: Botão para pagar por PagSeguro no Order_Info.tpl

Enviado: 24 Fev 2012, 20:02
por brunobld
Acabou que não funcionou esse, ficou só com uma.

Acabei usando: <?php echo number_format($total['value'],2); ?>

E funcionou.

Re: Botão para pagar por PagSeguro no Order_Info.tpl

Enviado: 24 Fev 2012, 23:02
por Renato Frota
É, o seu está correto. Eu não lembrava e procurei na net, quando achei acabei passando sem confirmar no http://br.php.net

AJUDA PARA VERSAO 1.4.9.3 em Invoice.tpl

Enviado: 21 Abr 2012, 01:45
por brunowambier
olá utilizei esse codigo na INVOICE.TPL e funcionou, mas preciso que o botão apareça somente quando o status for PENDENTE.
como fazer?


segue abaixo o código que utilizei:
Código: Selecionar todos
<?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>

<div id="content">
  <div class="top">
    <div class="left"></div>
    <div class="right"></div>
    <div class="center">
      <h2><?php echo $heading_title; ?></h2>
    </div>
  </div>
  <div class="middle">
    <div class="content">
      <table width="536">
        <tr>
          <td width="33.3%" valign="top"><?php if ($invoice_id) { ?>
            <b><?php echo $text_invoice_id; ?></b><br />
            <?php echo $invoice_id; ?><br />
            <br />
            <?php } ?>
            <b><?php echo $text_order_id; ?></b><br />
            #<?php echo $order_id; ?><br />
            <br />
            <b><?php echo $text_email; ?></b><br />
            <?php echo $email; ?><br />
            <br />
            <b><?php echo $text_telephone; ?></b><br />
            <?php echo $telephone; ?><br />
            <br />
            <?php if ($fax) { ?>
            <b><?php echo $text_fax; ?></b><br />
            <?php echo $fax; ?><br />
            <br />
            <?php } ?>
            <?php if ($shipping_method) { ?>
            <b><?php echo $text_shipping_method; ?></b><br />
            <?php echo $shipping_method; ?><br />
            <br />
            <?php } ?>
            <b><?php echo $text_payment_method; ?></b><br />
            <?php echo $payment_method; ?></td>
          <td width="33.3%" valign="top"><?php if ($shipping_address) { ?>
            <b><?php echo $text_shipping_address; ?></b><br />
            <?php echo $shipping_address; ?><br />
            <?php } ?></td>
          <td width="33.3%" valign="top"><b><?php echo $text_shipping_address; ?></b><br />
            <?php echo $payment_address; ?><br /></td>
        </tr>
      </table>
    </div>
    <div class="content">
      <table width="536">
        <tr>
          <th align="left"><?php echo $text_product; ?></th>
          <th align="left"><?php echo $text_model; ?></th>
          <th align="right"><?php echo $text_quantity; ?></th>
          <th align="right"><?php echo $text_price; ?></th>
          <th align="right"><?php echo $text_total; ?></th>
        </tr>
        <?php foreach ($products as $product) { ?>
        <tr>
          <td align="left" valign="top"><?php echo $product['name']; ?>
            <?php foreach ($product['option'] as $option) { ?>
            <br />
            &nbsp;<small> - <?php echo $option['name']; ?> <?php echo $option['value']; ?></small>
            <?php } ?></td>
          <td align="left" valign="top"><?php echo $product['model']; ?></td>
          <td align="right" valign="top"><?php echo $product['quantity']; ?></td>
          <td align="right" valign="top"><?php echo $product['price']; ?></td>
          <td align="right" valign="top"><?php echo $product['total']; ?></td>
        </tr>
        <?php } ?>
      </table>
      <br />
      <div style="width: 100%; display: inline-block;">
        <table style="float: right; display: inline-block;">
          <?php foreach ($totals as $total) { ?>
          <tr>
            <td align="right"><?php echo $total['title']; ?></td>
            <td align="right"><?php echo $total['text']; ?></td>
          </tr>
          <?php } ?>
        </table>
      </div>
    </div>
    <?php if ($comment) { ?>
    <b style="margin-bottom: 2px; display: block;"><?php echo $text_comment; ?></b>
    <div class="content"><?php echo $comment; ?></div>
    <?php } ?>
    <?php if ($historys) { ?>
    <b style="margin-bottom: 2px; display: block;"><?php echo $text_order_history; ?></b>
    <div class="content">
      <table width="536">
        <tr>
          <th align="left"><?php echo $column_date_added; ?></th>
          <th align="left"><?php echo $column_status; ?></th>
          <th align="left"><?php echo $column_comment; ?></th>
        </tr>
        <?php foreach ($historys as $history) { ?>
        <tr>
          <td valign="top"><?php echo $history['date_added']; ?></td>
          <td valign="top"><?php echo $history['status']; ?></td>
          <td valign="top"><?php echo $history['comment']; ?></td>
        </tr>
        <?php } ?>

        <form target="pagseguro" method="post" action="https://pagseguro.uol.com.br/v2/checkout/payment.html">

    <!-- Campos obrigatórios -->
    <input type="hidden" name="receiverEmail" value="brunowambier@gmail.com">
    <input type="hidden" name="currency" value="BRL">

    <!-- Itens do pagamento (ao menos um item é obrigatório) -->
    <input type="hidden" name="itemId1" value="<?php echo $order_id; ?>">
    <input type="hidden" name="itemDescription1" value="Pedido: <?php echo $order_id; ?>">
    <input type="hidden" name="itemAmount1" value="<?php echo number_format($total['value'],2); ?>">
    <input type="hidden" name="itemQuantity1" value="1">

    <!-- submit do form (obrigatório) -->
    <input type="image" name="submit"
    align="right" src="https://p.simg.uol.com.br/out/pagseguro/i/botoes/pagamentos/120x53-pagar.gif"
    alt="Pague com PagSeguro">

</form>
      </table>
    </div>
    <?php } ?>
    <div class="buttons">
      <table>
        <tr>
          <td align="right"><a onclick="location = '<?php echo str_replace('&', '&', $continue); ?>'" class="button"><span><?php echo $button_continue; ?></span></a></td>
        </tr>
      </table>
    </div>
  </div>
  <div class="bottom">
    <div class="left"></div>
    <div class="right"></div>
    <div class="center"></div>
  </div>
</div>
<?php echo $footer; ?>

Re: Botão para pagar por PagSeguro no Order_Info.tpl [Resolv

Enviado: 26 Abr 2012, 10:42
por brunobld
Bruno, pensando de uma forma bem simples você pode fazer um PHP com If... tipo:

<php if $order_status == 5 (ID da status) echo " seu codigo aqui " ?>

O código tá todo errado e é um pouco mais complexo que isso, mas a solução pode por esse caminho.

Re: Botão para pagar por PagSeguro no Order_Info.tpl [Resolv

Enviado: 10 Mai 2012, 11:38
por Editadoo
Valeu pessoal!
Vocês me ajudaram muito!
É por isso que amo esse forum!
;DD

Re: Botão para pagar por PagSeguro no Order_Info.tpl [Resolv

Enviado: 25 Jun 2012, 19:19
por virtuopolis
Quando o valor do pedido é maior que 999,00 haverá um ponto (1.000,00) e isso faz com que o pagseguro não reconheça o valor, causando o erro:

"O VALOR do item 1 deve ser numérico e ter formato válido."

com valores menores que 999,00 o código que estou usando está funcionando perfeitamente:
Código: Selecionar todos
<form target="pagseguro" method="post" action="https://pagseguro.uol.com.br/v2/checkout/payment.html">

    <!-- Campos obrigatórios -->
    <input type="hidden" name="receiverEmail" value="contato@loja.com.br">
    <input type="hidden" name="currency" value="BRL">

    <!-- Itens do pagamento (ao menos um item é obrigatório) -->
    <input type="hidden" name="itemId1" value="<?php echo $order_id; ?>">
    <input type="hidden" name="itemDescription1" value="Pedido: <?php echo $order_id; ?>">
    <input type="hidden" name="itemAmount1" value="<?php echo number_format($total['value'],2); ?>">
    <input type="hidden" name="itemQuantity1" value="1">

    <!-- submit do form (obrigatório) -->
    <input type="image" name="submit"
    align="center" src="http://www.endereçodaloja.com.br/image/99x61-pagar-assina.gif"
    alt="Pague com PagSeguro">

</form>