Руководство по интеграции PayPal на вашем веб-сайте в PHP
PayPal, несомненно, является одним из самых популярных платежных шлюзов для веб-сайтов. Большинство веб-сайтов используют PayPal для приема платежей через свои приложения. В этой статье мы изучаем интеграцию PayPal в веб-приложение на PHP.
Почему выбрать PayPal?
Создание учетной записи в PayPal совершенно бесплатно. Вам не нужно ничего платить вперед. PayPal будет взимать плату за каждую транзакцию.
При выполнении платежных транзакций PayPal использует шифрование Secure Socket Layers (SSL). Это защищает личные и конфиденциальные данные вашего клиента. Благодаря этому ваши клиенты чувствуют себя в безопасности при оплате через ваше веб-приложение.
PayPal также позволяет производить оплату через баланс PayPal, кредитные или дебетовые карты. Он добавляет ряд возможностей для оплаты клиентом ваших услуг.
Для приема оплаты с помощью кредитных карт вы также можете использовать сервис Authorize.net. Если вы хотите узнать больше об Authorize.net, следуйте нашему руководству. Принимайте платежи по кредитным картам с помощью платежного шлюза Authorize.net на PHP.
Интеграция PayPal
Поскольку мы говорим о веб-сайте на PHP, мы будем использовать официальную библиотеку GiHub PayPal. Эта библиотека предназначена для приложений PHP.
Мы рекомендуем использовать Composer для установки библиотеки.
Итак, чтобы интегрировать PayPal на веб-сайт, сначала выполните следующую команду в корневом каталоге проекта.
composer require "paypal/rest-api-sdk-php:*"
Получить идентификатор клиента и секрет клиента
Когда клиент платит через PayPal, сумма должна быть переведена на ваш счет PayPal. Для этого нам нужно получить ваш идентификатор клиента и секрет клиента. Вы можете создать свои учетные данные здесь.
На этой странице «Мои приложения и учетные данные» прокрутите вниз до раздела «Остальные приложения API» и нажмите кнопку «Создать приложение».
Дайте название своему приложению и нажмите кнопку «Создать приложение».
После вышеуказанных шагов вы получите учетные данные как для песочницы, так и для живого режима.
Теперь мы готовы с нашим идентификатором клиента и секретными ключами клиента. Давайте сделаем шаг вперед и напишем какой-нибудь фрагмент кода.
Актуальный код для интеграции 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>
payment.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.
success.php
<h2>Payment Successful.</h2>
error.php
<h2>Something went wrong. Try again later.</h2>
Мы надеемся, что вы понимаете интеграцию PayPal в веб-приложении. Пожалуйста, поделитесь своими мыслями в разделе комментариев ниже.