Una guida per l’integrazione di PayPal sul tuo sito web in PHP
PayPal è senza dubbio uno dei gateway di pagamento più popolari per i siti web. La maggior parte dei siti Web utilizza PayPal per ricevere pagamenti sulla propria applicazione. In questo articolo, studiamo l’integrazione di PayPal su un’applicazione web in PHP.
Perché scegliere PayPal?
La creazione di un account su PayPal è totalmente gratuita. Non devi pagare nulla in anticipo. PayPal ti addebiterà in base alla transazione.
Durante l’esecuzione delle transazioni di pagamento, PayPal utilizza la crittografia Secure Socket Layers (SSL). Questo protegge i dati personali e riservati dei tuoi clienti. Per questo motivo, i tuoi clienti si sentono al sicuro mentre effettuano il pagamento tramite la tua applicazione web.
PayPal consente anche di pagare tramite saldo PayPal, carte di credito o di debito. Aggiunge una serie di opzioni per un cliente per pagare il tuo servizio.
Per accettare pagamenti tramite carte di credito puoi anche utilizzare il servizio Authorize.net. Se vuoi saperne di più su Authorize.net segui il nostro tutorial Accetta pagamenti con carta di credito utilizzando il gateway di pagamento Authorize.net in PHP.
Integrazione PayPal
Poiché stiamo parlando di un sito Web basato su PHP, utilizzeremo la libreria GiHub ufficiale di PayPal. Questa libreria è per le applicazioni PHP.
Si consiglia di utilizzare Composer per l’installazione della libreria.
Quindi, per integrare PayPal nel sito Web, eseguire prima il comando seguente nella directory principale del progetto.
composer require "paypal/rest-api-sdk-php:*"
Ottieni l’ID cliente e il segreto del cliente
Quando il cliente paga tramite PayPal, l’importo deve essere depositato sul tuo conto PayPal. Per fare ciò, dobbiamo ottenere il tuo ID cliente e il tuo segreto cliente. Puoi creare le tue credenziali da qui.
In questa pagina Le mie app e credenziali, scorri verso il basso fino alla sezione "App Rest API" e fai clic sul pulsante "Crea app".
Dai il nome alla tua app e premi il pulsante "Crea app".
Dopo i passaggi precedenti, otterrai le credenziali sia per la modalità Sandbox che per la modalità Live.
Ora siamo pronti con il nostro ID client e le chiavi segrete del client. Facciamo un passo avanti e scriviamo un pezzo di codice.
Codice effettivo per l’integrazione PayPal
A questo punto siamo pronti con la biblioteca e le credenziali. Ora per integrare PayPal nel sito web, creiamo 4 file:
checkout.php
: In questo file, abbiamo un modulo che contiene il nome dell’articolo e l’importo.
payment.php
: Questo è il file in cui scriviamo tutto il codice relativo a PayPal.
success.php
: Dopo il pagamento riuscito, il cliente reindirizzerà a questo file.
error.php
: se il pagamento non va a buon fine, il cliente reindirizza a questo file.
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();
}
?>
Assicurati di sostituire i segnaposto con i valori effettivi. Nel codice sopra, impostiamo il valore ‘mode’ su ‘sandbox’. Durante il passaggio alla produzione, imposta questo valore come "live" e aggiungi l’ID client live e il client secret.
Una volta completato il processo di pagamento tramite PayPal, in base all’esito positivo o negativo del pagamento, verrà reindirizzato al file success.php o error.php.
success.php
<h2>Payment Successful.</h2>
errore.php
<h2>Something went wrong. Try again later.</h2>
Ci auguriamo che tu abbia compreso l’integrazione di PayPal nell’applicazione web. Per favore condividi i tuoi pensieri nella sezione commenti qui sotto.