Desenvolvimento - PHP

Pagamentos online via PayPal utilizando PHP

Neste artigo, iremos conhecer uma forma de efetuar pagamentos online utilizando o PHP.

por Marcelo Pereira Fonseca da Silva



Iremos conhecer uma forma de efetuar pagamentos online utilizando o PHP.

O site PayPal, oferece uma ferramenta em PHP para fazer integração com sistemas, dando a possibilidade ao desenvolvedor adicionar o recurso de pagamentos online ao seu projeto.

Para a instalação é necessário estar rodando PHP 4.1.0 ou superior.

O arquivo com o toolkit tem apenas 12 kB e pode ser encontrado em:
https://www.paypal.com/cgi-bin/webscr?cmd=p/pdn/software_dev_kit_php-outside

Os arquivos que constituem o pacote são:

includes/
ipn/
cancelled.php
orderform.php
payment.php
process.php
readme.txt (seu melhor amigo :) )
success.php

Uma breve descrição dos arquivos segue abaixo:

config.inc.php
Arquivo de configuração do script

global_config.inc.php
Contém funções globais que serão usadas no script

payment.php
Um botão de pagamento pré-configurado

orderform.php
Um formulário pré-configurado para testes

process.php
Envia as informações de transação para o PayPal

success.php
Mensagem de resposta de sucesso ao enviar a transação para o PayPal

cancelled.php
Mensagem de Erro quando a transação falha.

styles.css
CSS :)

ipn.php
Recebe informações da API do PayPal e interpreta os resultados

ipn_success.php
Executado somente se a transação tiver sido executado com sucesso

ipn_error.php
Executado somente se a transação deu erro

INSTALAÇÃO

Extraia todos os arquivos contidos em php_toolkit.zip

Envie os arquivos da pasta do ToolKit para o seu servidor web.

Abra o arquivo config.inc.php, localizado dentro da pasta includes/, e configure o script com a sua conta do PayPal

Caso desejar usar o método IPN, a permissão para a pasta "logs" deve ser para escrita(733 ou 777). O script automaticamente irá ser configurado para escrever um arquivo contendo as informações da IPN.

Para finalizar a instalação será necessário a criação de uma conta no site do PayPal.

Após criado, o usuário poderá obter essas informações e preencher o arquivo config.inc.php (localizado dentro do diretório includes/), no qual irá inserir as novas configurações de sua conta.

CONFIGURAÇÃO

Um exemplo do arquivo de configuração segue logo abaixo, e os campos que são obrigatórios estão descritos em português:

<?php

//Conta de email principal
$paypal[business]="pay@mybiz.com";

$paypal[site_url]="http://www.seusite.com.br/";
$paypal[image_url]="";
$paypal[success_url]="php_paypal/success.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";

// URL para a API do PayPal
$paypal[url]="https://www.sandbox.paypal.com/cgi-bin/webscr";

// Devem ser utilizados caso seu servidor esteja sendo usado 
// em conjunto com o OpenSSL
$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";

// Deve ser configurado como _xclick
$paypal[cmd]="_xclick";

// Configurações da página de pagamento (nomenclaturas e configurações de tela
$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

// Configurações do Produto
$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]";

// Define configurações de envio e impostos
$paypal[shipping_amount]="$_POST[shipping_amount]";
$paypal[shipping_amount_per_item]="";
$paypal[handling_amount]="";
$paypal[custom_field]="";

// Configurações do Cliente (inseridas via formulário)
$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]";

?>

Espero ter ajudado.

Publicado sob Creative Commons

Marcelo Pereira Fonseca da Silva

Marcelo Pereira Fonseca da Silva - Presta consultoria em desenvolvimento de aplicações em PHP e atua como desenvolvedor web em uma empresa especializada, é também um dos membros de tradução do manual do PHP e participa ativamente de melhorias para a linguagem. Trabalho também com GNU/Linux entre outras tecnologias.