Formulário De Recebimento Através Do Paypal

Nas matérias de PHP temos falado bastante sobre funções, condições diversas e classes!

Quem trabalha com o PHP ou qualquer outra linguagem, tem possibilidades infinitas!

Qual Programador não quer montar um Sistema que possa trabalhar por si mesmo?

Hoje uma das formas de recebimentos de pagamentos é o Paypal (www.paypal.com). É uma forma de receber pagamentos fácil, rápida e segura!

Qual A Finalidade?

Quem pensa em ter um cliente satisfeito, certamente investe em qualidade e facilidade no recebimento de pagamentos!

O Paypal trabalha justamente para isso! Lhe ajudar a facilitar este tipo de atividade!

Através de formulários dinâmicos, você pode facilitar o preenchimento de um novo cadastro e facilitar seus recebimentos!

Para quem pensa: Vai ser muito difícil criar uma solução assim!

Bem… o Paypal já tem tudo pronto e disponibiliza exemplos práticos que podem ser facilmente adaptados a seus Projetos.

OBS.: Para estudar este sistema, baixe o script na página acima ou no final desta matéria!

Baseado neste modelo “padrão”, vamos detalhar como funciona esta aplicação!

Como Funciona O Formulário De Recebimento Através do Paypal?

Trata-se de um formulário comum, como vários outros, porém, com algumas especificações voltadas à linguagem desejada!

Aqui estaremos falando sobre o PHP, porém, no site você terá acesso ao ASP, entre outras linguagens.

Após baixar e descompactar o conteúdo, você terá acesso à seguinte estrutura:

includes/
ipn/
cancelled.php
orderform.php
payment.php
process.php
readme.txt
sucess.php

Abaixo vamos falar sobre a função de cada um destes ficheiros e dos que estão dentro dos diretórios:

  • orderform.php Trata-se do formulário que recebe as informações do cliente (pré-configurado para testes). Após finalizar os testes, exclua este ficheiro e utilize o “payment.php”.
  • payment.php Formulário responsável por exibir um botão com algumas informações pré-configuradas. Após entender exatamente como funciona este formulário, implemente este ficheiro com suas informações e faça uso deste ficheiro.
  • process.php Envia as informações da transação financeira ao Paypal.
  • success.php Exibe uma mensagem informando que a transação foi efetuada com sucesso.
  • cancelled.php Exibe uma mensagem informando que a transação fo cancelada.
  • config.inc.php (encontrado dentro de “includes”) Trata-se do ficheiro de configuração
  • global_config.inc.php (encontrado dentro de “includes”) Também é um ficheiro de configuração. Este, receberá as variáveis e encaminhará seus valores.
  • ipn.php (encontrado dentro de “ipn”) Este ficheiro recebe os resultados da “API” do Paypal e interpreta suas informações.
  • ipn_error.php (encontrado dentro de “ipi”) Executado apenas quando a transação deu erro
  • ipn_sucess.php (encontrado dentro de “ipi”) Executado apenas quando a transação foi efetuada com sucesso.

Definindo Os Campos

Se você é Programador PHP, certamente não terá qualquer problema ao verificar as dicas abaixo!

Como várias áreas do Sistema estão em inglês, achei por bem implementar falando um pouco mais sobre esta parte!

  • first_name: Campo Nome
  • last_name: Sobrenome
  • address1: Endereço (1 de 2 campos)
  • address2: Endereço (2 de 2 campos – complemento)
  • city: Cidade
  • state: Estado
  • zip: CEP
  • country: País de entrega e cobrança
  • email: Email do Cliente
  • night_phone_a: código de área
  • night_phone_b: Número de Telefone
  • item_name: Nome do Produto que está sendo vendido
  • undefined_quantity: Quantidade do Produto
  • business: email da pessoa ou empresa que está efetuando a cobrança

Bem… se você abriu o sistema, certamente viu que este é um dos vários campos disponíveis!

Abaixo daremos outras dicas que facilitarão seu entendimento!

config.inc.php

Este é um dos principais ficheiros de configuração!

Veja abaixo algumas informações sobre ele!


<?php
/*
* config.inc.php
*
* PHP Toolkit for PayPal v0.51
* http://www.paypal.com/pdn
*
* Copyright (c) 2004 PayPal Inc
*
* Released under Common Public License 1.0
* http://opensource.org/licenses/cpl.php
*
*/

//Configuration Settings

$paypal[business]="pay@mybiz.com";
$paypal[site_url]="http://www.docmerchant.com/";
$paypal[image_url]="";
$paypal[success_url]="php_paypal/success.php";
//$paypal[success_url]="php_paypal/ipn/ipn.php";
$paypal[cancel_url]="php_paypal/error.php";
$paypal[notify_url]="php_paypal/ipn/ipn.php";
$paypal[return_method]="1"; //1=GET 2=POST
$paypal[currency_code]="USD"; //[USD,GBP,JPY,CAD,EUR]
$paypal[lc]="US";

//$paypal[url]="http://www.paypal.com/cgi-bin/webscr";
//$paypal[url]="https://www.paypal.com/cgi-bin/webscr";
$paypal[url]="https://www.sandbox.paypal.com/cgi-bin/webscr";
$paypal[post_method]="fso"; //fso=fsockopen(); curl=curl command line libCurl=php compiled with libCurl support
$paypal[curl_location]="/usr/local/bin/curl";

$paypal[bn]="toolkit-php";
$paypal[cmd]="_xclick";

//Payment Page Settings
$paypal[display_comment]="0"; //0=yes 1=no
$paypal[comment_header]="Comments";
$paypal[continue_button_text]="Continue >>";
$paypal[background_color]=""; //""=white 1=black
$paypal[display_shipping_address]=""; //""=yes 1=no
$paypal[display_comment]="1"; //""=yes 1=no

//Product Settings
$paypal[item_name]="$_POST[item_name]";
$paypal[item_number]="$_POST[item_number]";
$paypal[amount]="$_POST[amount]";
$paypal[on0]="$_POST[on0]";
$paypal[os0]="$_POST[os0]";
$paypal[on1]="$_POST[on1]";
$paypal[os1]="$_POST[os1]";
$paypal[quantity]="$_POST[quantity]";
$paypal[edit_quantity]=""; //1=yes ""=no
$paypal[invoice]="$_POST[invoice]";
$paypal[tax]="$_POST[tax]";

//Shipping and Taxes
$paypal[shipping_amount]="$_POST[shipping_amount]";
$paypal[shipping_amount_per_item]="";
$paypal[handling_amount]="";
$paypal[custom_field]="";

//Customer Settings
$paypal[firstname]="$_POST[firstname]";
$paypal[lastname]="$_POST[lastname]";
$paypal[address1]="$_POST[address1]";
$paypal[address2]="$_POST[address2]";
$paypal[city]="$_POST[city]";
$paypal[state]="$_POST[state]";
$paypal[zip]="$_POST[zip]";
$paypal[email]="$_POST[email]";
$paypal[phone_1]="$_POST[phone1]";
$paypal[phone_2]="$_POST[phone2]";
$paypal[phone_3]="$_POST[phone3]";

?>

?>

ALGUMAS ALTERAÇÕES:

Altere a linha 17 ($paypal[business]=”pay@mybiz.com”;) colocando entre as aspas seu endereço de email.

Altere a linha 18 ($paypal[site_url]=”http://www.docmerchant.com/”;) colocando entre as aspas o endereço de seu website.

Altere a linha 25 ($paypal[currency_code]=”USD”;) colocando entre as aspas a moeda de cobrança (USD,GBP,JPY,CAD ou EUR).

Retire o comentário da linha 29;

Comente a linha 30.

Após efetuar estas alterações, seu sistema deixará de responder em modo teste e estará automaticamente ativo. Pronto para efetuar as cobranças.

payment.php

O ficheiro “payment.php” vem por “padrão” no formato abaixo:


<?php
/*
* payment.php
*
* PHP Toolkit for PayPal v0.51
* http://www.paypal.com/pdn
*
* Copyright (c) 2004 PayPal Inc
*
* Released under Common Public License 1.0
* http://opensource.org/licenses/cpl.php
*
*/
?>

<html>
<head>
<title>::PHP PayPal Payment Button::</title>
</head>

<body>
<form method="post" action="process.php">
<input type="hidden" name="amount" value="9.95">
<input type="hidden" name="item_name" value="Test Payment">
<input type="submit" value=" Pay ">
</form>

</head>
</html>

Após você saber exatamente o que fazer com cada campo, poderá customizá-lo!

Fizemos um teste, inserindo o conteúdo abaixo!


<?php
/*
* payment.php
*
* PHP Toolkit for PayPal v0.51
* http://www.paypal.com/pdn
*
* Copyright (c) 2004 PayPal Inc
*
* Released under Common Public License 1.0
* http://opensource.org/licenses/cpl.php
*
*/
?>

<html>
<head>
<title>::WEBMASTER.PT :: PayPal Payment ::</title>
</head>

<body>
<form method="post" action="process.php">
<INPUT TYPE="hidden" NAME="cmd" VALUE="_xclick">
<INPUT TYPE="hidden" NAME="business" VALUE="comandosusa@gmail.com">
<INPUT TYPE="hidden" NAME="undefined_quantity" VALUE="1">
Produto: <INPUT TYPE="text" NAME="item_name" VALUE="chapéu"><br>
<INPUT TYPE="hidden" NAME="item_number" VALUE="123">
<INPUT TYPE="hidden" NAME="amount" VALUE="15,00">
<INPUT TYPE="hidden" NAME="shipping" VALUE="1,00">
<INPUT TYPE="hidden" NAME="shipping2" VALUE="0,50">
<INPUT TYPE="hidden" NAME="currency_code" VALUE="BRL">
<INPUT TYPE="hidden" NAME="first_name" VALUE="John">
<INPUT TYPE="hidden" NAME="last_name" VALUE="Doe">
<INPUT TYPE="hidden" NAME="address1" VALUE="9 Elm Street">
<INPUT TYPE="hidden" NAME="address2" VALUE="Apt 5">
Cidade: <INPUT TYPE="text" NAME="city" VALUE="Rio de Janeiro"><br>
Estado: <INPUT TYPE="text" NAME="state" VALUE="RJ"><br>
CEP: <INPUT TYPE="text" NAME="zip" VALUE="13060-854"><br>
<INPUT TYPE="hidden" NAME="lc" VALUE="BR">
<INPUT TYPE="hidden" NAME="email" VALUE="paypal@hostingportugal.net">
<INPUT TYPE="hidden" NAME="night_phone_a" VALUE="610">
<INPUT TYPE="hidden" NAME="night_phone_b" VALUE="555">  <br><br>
<INPUT TYPE="image" NAME="submit" BORDER="0" SRC="http://www.paypal.com/pt_BR/i/btn/btn_buynow_LG.gif" ALT="PayPal - A maneira mais fácil e segura de efetuar pagamentos on-line">
<img alt="" border="" width="1" height="1" src="https://www.paypal.com/pt_BR/i/scr/pixel.gif">
<input type="hidden" name="amount" value="9.95">
<input type="hidden" name="item_name" value="Test Payment">
<input type="submit" value=" Pay ">
</form>

</head>
</html>

Prático, não?

Veja como ele ficou em tela, após fazermos as alterações:

IMAGEM 01: Página de teste (orderform.php).

Página orderform.php

IMAGEM 02: Página de cobrança original (payment.php).

Página payment.php

IMAGEM 03: Página de cobrança customizada (payment_novo.php).

Página payment_novo.php

IMAGEM 04: Página de cobrança do Paypal

Página de cobrança do Paypal

OBS.: Para quem já é cadastrado no Paypal, o Sistema fará o direcionamento sem nenhum problema, colocando até a senha do Cliente.

Se ele ainda não for, deverá preencher todos os dados de cadastro (conforme imagem abaixo).

IMAGEM 05: Página de cobrança do Paypal (Formulário de Cadastro)

Página de cobrança do Paypal - Formulário de Cadastro

Bem… é um sistema prático e fácil de se usar!

Esperamos ter lhe ajudado em algo com este tutorial!

Envie-nos suas dúvidas e dê sugestões para as próximas matérias! Nosso compromisso é lhe ajudar!

Faça o Download do código do formulário de recebimento através do paypal.

Be Sociable, Share!

4 Comentários

  1. O mesmo digo Maicon, essa solução ajudará não apenas a mim como a meus clientes também poupando tempo de seus visitantes !!

    Muito obrigado pelo tutorial Quemuel =)

  2. Amigo, meu cliente tem um form do paypal que já faz a venda, mas ele tem que entrar na tela do paypal para aprovar, teria algum parâmetro para o form que já faz isso? ou só com a API mesmo?

  3. Célio Garcia

    Não está explícito

Participa! Comenta...