Посібник з інтеграції PayPal на вашому веб-сайті в PHP
PayPal, без сумніву, є одним з найпопулярніших платіжних шлюзів для веб-сайтів. Більшість веб-сайтів використовують PayPal для отримання платежів за їх заявкою. У цій статті ми вивчаємо інтеграцію PayPal у веб-програму на PHP.
Чому обирати PayPal?
Створення облікового запису на PayPal абсолютно безкоштовне. Вам не потрібно нічого платити заздалегідь. PayPal стягуватиме плату з вас за кожну операцію.
Під час виконання платіжних операцій PayPal використовує шифрування Secure Socket Layers (SSL). Це захищає особисті та конфіденційні дані вашого клієнта. Через це ваші клієнти почуваються в безпеці, здійснюючи оплату через веб-додаток.
PayPal також дозволяє здійснювати оплату через баланс PayPal, кредитні або дебетові картки. Це додає ряд опцій, за допомогою яких клієнт може оплатити вашу послугу.
Для прийому оплати за допомогою кредитних карток ви також можете скористатися послугою Authorize.net. Якщо ви хочете дізнатись більше про Authorize.net, дотримуйтесь нашого посібника Прийміть оплату кредитною карткою, використовуючи Authorize.net Payment Gateway у PHP.
Інтеграція PayPal
Оскільки ми говоримо про веб-сайт, що працює на PHP, ми будемо використовувати офіційну бібліотеку GiHub PayPal. Ця бібліотека призначена для програм на PHP.
Ми рекомендуємо використовувати Composer для встановлення бібліотеки.
Отже, для інтеграції PayPal у веб-сайт спочатку запустіть наведену нижче команду в кореневому каталозі проекту.
composer require "paypal/rest-api-sdk-php:*"
Отримайте ідентифікатор клієнта та секрет клієнта
Коли клієнт платить через PayPal, сума повинна бути внесена на ваш рахунок PayPal. Для цього нам потрібно отримати ідентифікатор вашого клієнта та секрет клієнта. Ви можете створити свої облікові дані звідси.
На цій сторінці Мої програми та облікові дані прокрутіть униз до розділу «Відпочинок програм API» та натисніть кнопку «Створити програму».
Дайте назву своєму додатку та натисніть кнопку "Створити додаток".
Після вищевказаних кроків ви отримаєте облікові дані як для пісочниці, так і для режиму Live.
Тепер ми готові до використання ідентифікатора клієнта та секретних ключів клієнта. Давайте зробимо крок вперед і напишемо шматок коду.
Фактичний код для інтеграції PayPal
На цьому етапі ми готові до бібліотеки та облікових даних. Тепер для інтеграції PayPal у веб-сайт ми створюємо 4 файли:
checkout.php
: У цьому файлі ми маємо форму, яка містить назву та суму товару.
payment.php
: Це файл, в який ми пишемо весь пов’язаний з PayPal код.
success.php
: Після успішної оплати клієнт перенаправить на цей файл.
error.php
: Якщо платіж не вдався, клієнт перенаправляє на цей файл.
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>
платіж.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();
}
?>
Обов’язково замініть заповнювачі фактичними значеннями. У наведеному вище коді ми встановили для значення режиму значення "пісочниця". Переходячи до виробництва, зробіть це значення "живим" та додайте свій ідентифікатор клієнта та секрет клієнта.
Після завершення процесу оплати через PayPal, на основі успішного або невдалого платежу, він буде перенаправлений до файлу success.php або error.php.
успіх.php
<h2>Payment Successful.</h2>
помилка.php
<h2>Something went wrong. Try again later.</h2>
Ми сподіваємось, ви розумієте інтеграцію PayPal у веб-програму. Будь ласка, поділіться своїми думками в розділі коментарів нижче.