PHP - Интеграция с PayPal
Здравствуйте,野心勃勃的开发者们! Сегодня мы отправляемся в захватывающее путешествие в мир интеграции PayPal с PHP. Как ваш доброжелательный сосед по компьютерным наукам, я здесь, чтобы провести вас через этот процесс шаг за шагом. Не волнуйтесь, если вы новички в программировании - мы начнем с основ и будем продвигаться вверх. Так что возьмите чашечку кофе и погружайтесь с нами!
Понимание интеграции с PayPal
Прежде чем мы начнем программировать, давайте поймем, что такое интеграция с PayPal. Представьте, что вы управляете интернет-магазином, продающим hand-made свитера. Вы хотите предоставить своим клиентам легкий способ оплаты их уютных новых изделий. Вот где на помощь приходит PayPal! Это как цифровой кошелек, который позволяет безопасно производить онлайн-транзакции.
Why Use PayPal? (Why use PayPal? - Почему использовать PayPal?)
- Он widely trusted (широко доверяют)
- Easy to implement (легкоImplementировать)
- Supports multiple currencies (поддерживает несколько валют)
- Provides buyer and seller protection (предоставляет защиту покупателя и продавца)
Теперь, когда мы знаем, почему PayPal awesome (отличный), давайте посмотрим, как мы можем интегрировать его в наш сайт на PHP.
Файловая система интеграции PayPal
Для интеграции PayPal в наше приложение на PHP, нам нужно настроить правильную структуру файлов. Это помогает содержать наш код организованным и легким для поддержки. Поверьте мне, будущее вы поблагодарит настоящее вас за это!
Вот структура файлов, которую мы будем использовать:
project_root/
│
├── config/
│ └── paypal.php
│
├── includes/
│ └── paypal.php
│
├── public/
│ ├── css/
│ │ └── style.css
│ ├── js/
│ │ └── script.js
│ └── index.php
│
└── vendor/
└── autoload.php
Давайте разберем это:
-
config/paypal.php
: Этот файл будет хранить наши учётные данные API PayPal. -
includes/paypal.php
: Этот файл будет содержать наши функции интеграции с PayPal. -
public/
: Эта директория будет hosting (размещать) наши publicly accessible files (publicly accessible files - publicly available files - publicly accessible files) (publicly accessible files - publicly available files). -
vendor/
: Это место, где будут жить наши зависимости (we'll use Composer for this - мы будем использовать Composer для этого).
Настройка учётных данных API PayPal
Прежде чем мы начнем программировать, мы должны получить наши учётные данные API PayPal. Это как получить ключи от нашей новой машины с PayPal!
- Перейдите на developer.paypal.com и создайте учётную запись (или войдите, если у вас уже есть одна).
- Перейдите в Dashboard (Панель управления) и создайте новое приложение.
- Once created, you'll see your Client ID and Secret. These are super important, so keep them safe! (Как только оно будет создано, вы увидите ваш Client ID и Secret. Это super important, так что keep them safe! - Это super important, так что keep them safe!)
Теперь добавьте эти учётные данные в наш файл config/paypal.php
:
<?php
return [
'client_id' => 'YOUR_CLIENT_ID_HERE',
'client_secret' => 'YOUR_CLIENT_SECRET_HERE',
'mode' => 'sandbox' // Use 'live' for production
];
Remember to replace 'YOUR_CLIENT_ID_HERE' and 'YOUR_CLIENT_SECRET_HERE' with your actual PayPal API credentials. (Не забудьте заменить 'YOUR_CLIENT_ID_HERE' и 'YOUR_CLIENT_SECRET_HERE' на ваши actual PayPal API credentials - фактические учётные данные API PayPal.)
Установка SDK PayPal
Теперь, когда у нас настроены учётные данные, давайте установим SDK PayPal. Мы будем использовать Composer для этого, который resembles a personal shopper for PHP libraries (похож на личного покупателя для PHP библиотек).
First, make sure you have Composer installed. Then, run this command in your project root: (Сначала убедитесь, что у вас установлен Composer. Затем выполните эту команду в корне вашего проекта:)
composer require paypal/rest-api-sdk-php
This will install the PayPal SDK and create the vendor
directory with all the necessary files. (Это установит SDK PayPal и создаст директорию vendor
с всеми необходимыми файлами.)
Создание функций интеграции с PayPal
Теперь comes the fun part – writing our PayPal integration functions! We'll create these in our includes/paypal.php
file. (приходит趣味ная часть - writing our PayPal integration functions! We'll create these in our includes/paypal.php
file - мы создадим их в файле includes/paypal.php
.)
<?php
require_once __DIR__ . '/../vendor/autoload.php';
use PayPal\Api\Amount;
use PayPal\Api\Payer;
use PayPal\Api\Payment;
use PayPal\Api\RedirectUrls;
use PayPal\Api\Transaction;
use PayPal\Auth\OAuthTokenCredential;
use PayPal\Rest\ApiContext;
function getPayPalApiContext() {
$paypalConfig = require __DIR__ . '/../config/paypal.php';
$apiContext = new ApiContext(
new OAuthTokenCredential(
$paypalConfig['client_id'],
$paypalConfig['client_secret']
)
);
$apiContext->setConfig([
'mode' => $paypalConfig['mode'],
'log.LogEnabled' => true,
'log.FileName' => '../PayPal.log',
'log.LogLevel' => 'DEBUG'
]);
return $apiContext;
}
function createPayPalPayment($amount) {
$apiContext = getPayPalApiContext();
$payer = new Payer();
$payer->setPaymentMethod("paypal");
$amount = new Amount();
$amount->setCurrency("USD")
->setTotal($amount);
$transaction = new Transaction();
$transaction->setAmount($amount)
->setDescription("Payment description");
$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl("http://localhost/success.php")
->setCancelUrl("http://localhost/cancel.php");
$payment = new Payment();
$payment->setIntent("sale")
->setPayer($payer)
->setRedirectUrls($redirectUrls)
->setTransactions(array($transaction));
try {
$payment->create($apiContext);
return $payment;
} catch (Exception $ex) {
echo "Error: " . $ex->getMessage();
exit(1);
}
}
Давайте разберем, что здесь происходит:
- Мы включая необходимые классы SDK PayPal.
- Функция
getPayPalApiContext()
настраивает наш контекст API PayPal, используя наши учётные данные. - Функция
createPayPalPayment()
создаёт новый PayPal платёж для указанной суммы. Он настраивает плательщика, сумму, транзакцию и URL-адреса для перенаправления.
Использование нашей интеграции с PayPal
Теперь, когда у нас настроены функции, давайте используем их в файле public/index.php
:
<?php
require_once __DIR__ . '/../includes/paypal.php';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$amount = $_POST['amount'];
$payment = createPayPalPayment($amount);
foreach($payment->getLinks() as $link) {
if($link->getRel() == 'approval_url') {
header("Location: ".$link->getHref());
exit(1);
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>PayPal Integration Example</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>PayPal Payment Example</h1>
<form method="post">
<label for="amount">Amount (USD):</label>
<input type="number" id="amount" name="amount" min="1" step="0.01" required>
<button type="submit">Pay with PayPal</button>
</form>
<script src="js/script.js"></script>
</body>
</html>
Этот код создаёт простой форм, где пользователи могут ввести сумму и щёлкнуть по кнопке, чтобы заплатить через PayPal. Когда форма отправляется, она creates a PayPal payment (создаёт PayPal платёж) и перенаправляет пользователя на PayPal для завершения оплаты.
Заключение
Поздравления! Вы только что создали свою первую интеграцию PayPal с PHP. Мы covered a lot of ground today (покрыли много terreno сегодня) от настройки структуры файлов до создания PayPal платежей. Помните, что практика делает мастера, так что не бойтесь экспериментировать и строить на основе того, что вы узнали.
В мире веб-разработки, интеграция платёжных систем, таких как PayPal, это ценный навык. Это как добавить турбонаддув к вашему PHP ракете - он забросит вас на новые высоты в вашем coding journey (путешествии программирования)!
Продолжайте программировать, продолжайте учиться, и, самое главное, получайте удовольствие! Until next time, happy coding! (До свидания,快乐编码!)
Method | Description |
---|---|
getPayPalApiContext() | Sets up and returns the PayPal API context using the credentials from the config file |
createPayPalPayment($amount) | Creates a new PayPal payment for the specified amount |
Credits: Image by storyset