PHP - Tích hợp PayPal

Xin chào các bạn đang học lập trình! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị vào thế giới tích hợp PayPal với PHP. Là người dạy khoa học máy tính gần gũi của bạn, tôi ở đây để hướng dẫn bạn qua quá trình này từng bước một. Đừng lo lắng nếu bạn mới bắt đầu học lập trình - chúng ta sẽ bắt đầu từ những điều cơ bản và dần dần nâng cao. Vậy, hãy lấy một tách cà phê, và cùng nhau vào cuộc!

PHP - Paypal Integration

Hiểu về Tích hợp PayPal

Trước khi bắt đầu viết mã, hãy hiểu về tích hợp PayPal là gì. Hãy tưởng tượng bạn đang quản lý một cửa hàng trực tuyến bán áo len handmade. Bạn muốn cung cấp cho khách hàng một cách dễ dàng để thanh toán cho những sản phẩm ấm áp mới của họ. Đó là lúc PayPal vào cuộc! Nó giống như một ví điện tử cho phép giao dịch trực tuyến an toàn.

Tại sao sử dụng PayPal?

  1. Nó được tin tưởng rộng rãi
  2. Dễ dàng triển khai
  3. Hỗ trợ nhiều loại tiền tệ
  4. Cung cấp bảo vệ cho người mua và người bán

Bây giờ chúng ta đã biết tại sao PayPal lại tuyệt vời, hãy xem cách chúng ta có thể tích hợp nó vào trang web PHP của mình.

Hệ thống Tập tin Tích hợp PayPal

Để tích hợp PayPal vào ứng dụng PHP của mình, chúng ta cần thiết lập một cấu trúc tập tin hợp lý. Điều này giúp giữ mã của chúng ta tổ chức và dễ bảo trì. tin tôi đi, bạn tương lai sẽ cảm ơn bạn hiện tại vì điều này!

Dưới đây là cấu trúc tập tin chúng ta sẽ sử dụng:

project_root/
│
├── config/
│   └── paypal.php
│
├── includes/
│   └── paypal.php
│
├── public/
│   ├── css/
│   │   └── style.css
│   ├── js/
│   │   └── script.js
│   └── index.php
│
└── vendor/
└── autoload.php

Hãy phân tích:

  1. config/paypal.php: Tập tin này sẽ lưu trữ thông tin xác thực API của PayPal.
  2. includes/paypal.php: Đây sẽ chứa các hàm tích hợp PayPal.
  3. public/: Thư mục này sẽ lưu trữ các tệp công khai.
  4. vendor/: Đây là nơi các phụ thuộc của chúng ta sẽ nằm (chúng ta sẽ sử dụng Composer cho điều này).

Thiết lập Thông tin Xác thực API PayPal

Trước khi chúng ta bắt đầu viết mã, chúng ta cần lấy thông tin xác thực API của PayPal. Điều này giống như lấy chìa khóa cho chiếc xe mới được PayPal của chúng ta!

  1. Truy cập developer.paypal.com và tạo tài khoản (hoặc đăng nhập nếu bạn đã có tài khoản).
  2. Di chuyển đến Bảng điều khiển và tạo một ứng dụng mới.
  3. Sau khi tạo xong, bạn sẽ thấy Client ID và Secret. Đây rất quan trọng, hãy giữ chúng an toàn!

Bây giờ, hãy thêm các thông tin xác thực này vào tập tin config/paypal.php của chúng ta:

<?php
return [
'client_id' => 'YOUR_CLIENT_ID_HERE',
'client_secret' => 'YOUR_CLIENT_SECRET_HERE',
'mode' => 'sandbox' // Sử dụng 'live' cho sản xuất
];

Nhớ thay thế 'YOUR_CLIENT_ID_HERE' và 'YOUR_CLIENT_SECRET_HERE' bằng thông tin xác thực API PayPal thực tế của bạn.

Cài đặt SDK PayPal

Bây giờ chúng ta đã thiết lập xong thông tin xác thực, hãy cài đặt SDK PayPal. Chúng ta sẽ sử dụng Composer cho điều này, giống như một người mua sắm cá nhân cho các thư viện PHP.

Đầu tiên, hãy chắc chắn rằng bạn đã cài đặt Composer. Sau đó, chạy lệnh này trong thư mục gốc của dự án:

composer require paypal/rest-api-sdk-php

Lệnh này sẽ cài đặt SDK PayPal và tạo thư mục vendor với tất cả các tệp cần thiết.

Tạo Hàm Tích hợp PayPal

Bây giờ đến phần thú vị - viết các hàm tích hợp PayPal! Chúng ta sẽ tạo chúng trong tập tin 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("Mô tả thanh toán");

$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 "Lỗi: " . $ex->getMessage();
exit(1);
}
}

Hãy phân tích những gì đang xảy ra ở đây:

  1. Chúng ta đang bao gồm các lớp cần thiết của PayPal SDK.
  2. Hàm getPayPalApiContext() thiết lập và trả về ngữ cảnh API PayPal sử dụng thông tin xác thực từ tệp cấu hình.
  3. Hàm createPayPalPayment($amount) tạo một thanh toán PayPal mới cho số tiền đã chỉ định. Nó thiết lập người thanh toán, số tiền, giao dịch, và các liên kết điều hướng.

Sử dụng Tích hợp PayPal của Chúng ta

Bây giờ chúng ta đã thiết lập xong các hàm, hãy sử dụng chúng trong tập tin 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> Ví dụ Tích hợp PayPal</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1> Ví dụ Thanh toán PayPal</h1>
<form method="post">
<label for="amount">Số tiền (USD):</label>
<input type="number" id="amount" name="amount" min="1" step="0.01" required>
<button type="submit">Thanh toán với PayPal</button>
</form>
<script src="js/script.js"></script>
</body>
</html>

Điều này tạo một biểu mẫu đơn giản nơi người dùng có thể nhập số tiền và nhấp vào nút để thanh toán qua PayPal. Khi biểu mẫu được gửi, nó tạo một thanh toán PayPal và chuyển hướng người dùng đến PayPal để hoàn tất thanh toán.

Kết luận

Chúc mừng! Bạn vừa tạo thành công tích hợp PayPal đầu tiên của mình với PHP. Chúng ta đã bao quát rất nhiều nội dung hôm nay, từ việc thiết lập cấu trúc tập tin đến việc tạo thanh toán PayPal. Nhớ rằng, thực hành làm nên hoàn hảo, vì vậy đừng ngần ngại thử nghiệm và phát triển thêm những gì bạn đã học.

Trong thế giới phát triển web, tích hợp các hệ thống thanh toán như PayPal là một kỹ năng quý giá. Nó giống như thêm một bộ tăng áp cho tên lửa PHP của bạn - nó sẽ đưa bạn đến những đỉnh cao mới trong hành trình lập trình của bạn!

Tiếp tục lập mã, tiếp tục học hỏi, và quan trọng nhất, hãy vui vẻ! Đến gặp lại vào lần sau, chúc bạn lập mã vui vẻ!

Credits: Image by storyset