Um guia para integração do PayPal em seu site em PHP
O PayPal é sem dúvida um dos gateways de pagamento mais populares para sites. A maioria dos sites está usando o PayPal para receber pagamentos em seu aplicativo. Neste artigo, estudamos a integração do PayPal em um aplicativo da web em PHP.
Por que escolher o PayPal?
Criar uma conta no PayPal é totalmente gratuito. Você não precisa pagar nada adiantado. O PayPal cobrará de você por transação.
Ao realizar transações de pagamento, o PayPal usa criptografia Secure Socket Layers (SSL). Isso protege os dados pessoais e confidenciais do seu cliente. Por isso, seus clientes se sentem seguros ao fazer o pagamento por meio de seu aplicativo da web.
O PayPal também permite o pagamento com saldo do PayPal, cartões de crédito ou débito. Ele adiciona uma série de opções para o cliente pagar por seu serviço.
Para aceitar pagamentos com cartões de crédito, você também pode usar o serviço Authorize.net. Se você quiser saber mais sobre Authorize.net, siga nosso tutorial Aceitar pagamento com cartão de crédito usando o gateway de pagamento Authorize.net em PHP.
Integração com PayPal
Como estamos falando sobre um site baseado em PHP, usaremos a biblioteca oficial GiHub do PayPal. Esta biblioteca é para aplicativos PHP.
Recomendamos usar o Composer para instalação da biblioteca.
Portanto, para integrar o PayPal ao site, primeiro execute o comando abaixo no diretório raiz do projeto.
composer require "paypal/rest-api-sdk-php:*"
Obtenha o ID do cliente e o segredo do cliente
Quando o cliente paga pelo PayPal, o valor deve ser depositado em sua conta do PayPal. Para fazer isso, precisamos obter o seu ID de cliente e o segredo do cliente. Você pode criar suas credenciais aqui.
Nesta página My Apps & Credentials, role para baixo até a seção ‘Rest API apps’ e clique no botão ‘Create App’.
Dê o nome ao seu aplicativo e clique no botão ‘Criar aplicativo’.
Após as etapas acima, você obterá credenciais para o modo Sandbox e Live.
Agora estamos prontos com nosso ID de cliente e chaves secretas do cliente. Vamos dar um passo à frente e escrever algum código.
Código real para integração do PayPal
Nesta fase, estamos prontos com a biblioteca e credenciais. Agora, para integrar o PayPal ao site, criamos 4 arquivos:
checkout.php
: Neste arquivo, temos o formulário que contém o nome do item e a quantidade.
payment.php
: Este é o arquivo onde escrevemos todos os códigos relacionados ao PayPal.
success.php
: Após o pagamento bem-sucedido, o cliente redirecionará para este arquivo.
error.php
: Se o pagamento não for bem-sucedido, o cliente redirecionará para este arquivo.
checkout.php
<form action="payment.php" method="post">
<input type="text" name="item" placeholder="Enter Item Name">
<input type="text" name="amount" placeholder="Enter Amount">
<input type="submit" name="submit" value="Pay">
</form>
pagamento.php
<?php
require_once 'vendor/autoload.php';
use PayPalApiItem;
use PayPalApiItemList;
$apiContext = new PayPalRestApiContext(
new PayPalAuthOAuthTokenCredential(
'YOUR_CLIENT_ID', // ClientID
'YOUR_CLIENT_SECRET' // ClientSecret
)
);
$apiContext->setConfig(
array(
'log.LogEnabled' => true,
'log.FileName' => 'PayPal.log',
'log.LogLevel' => 'DEBUG',
'mode' => 'sandbox', //'live' or 'sandbox'
)
);
$payer = new PayPalApiPayer();
$payer->setPaymentMethod('paypal');
$item1 = new Item();
$item1->setName($_POST['item'])
->setCurrency('USD')
->setQuantity(1)
->setPrice($_POST['amount']);
$itemList = new ItemList();
$itemList->setItems(array($item1));
$amount = new PayPalApiAmount();
$amount->setTotal($_POST['amount']);
$amount->setCurrency('USD');
$transaction = new PayPalApiTransaction();
$transaction->setDescription("Payment For Service")
->setItemList($itemList)
->setAmount($amount);
$redirectUrls = new PayPalApiRedirectUrls();
$redirectUrls->setReturnUrl("YOUR_HTTP_PATH/success.php")
->setCancelUrl("YOUR_HTTP_PATH/error.php");
$payment = new PayPalApiPayment();
$payment->setIntent('sale')
->setPayer($payer)
->setTransactions(array($transaction))
->setRedirectUrls($redirectUrls);
// 4. Make a Create Call
try {
$payment->create($apiContext);
header('Location: '. $payment->getApprovalLink());
}
catch (PayPalExceptionPayPalConnectionException $ex) {
// This will print the detailed information on the exception.
//REALLY HELPFUL FOR DEBUGGING
echo $ex->getData();
}
?>
Certifique-se de substituir os marcadores pelos valores reais. No código acima, definimos o valor de ‘modo’ como ‘sandbox’. Ao passar para a produção, defina esse valor como ‘ativo’ e adicione seu ID de cliente ativo e o segredo do cliente.
Assim que seu processo de pagamento for concluído através do PayPal, com base no sucesso ou falha no pagamento, ele será redirecionado para o arquivo success.php ou error.php.
success.php
<h2>Payment Successful.</h2>
error.php
<h2>Something went wrong. Try again later.</h2>
Esperamos que você entenda a integração do PayPal no aplicativo da web. Por favor, compartilhe suas idéias na seção de comentários abaixo.