以下是原文翻译成繁體中文的版本:
# PHP - PayPal 集成
Hello, 有志的開發者們!今天,我們將踏上一段令人興奮的旅程,進入 PHP 和 PayPal 集成的世界。作為你們友好的鄰居計算機科學老師,我將指導你們一步一步地完成這個過程。別擔心你們是編程新手——我們會從基礎開始,逐步學習。所以,來一杯咖啡,我們一起來深入探討!
## 了解 PayPal 集成
在我們開始編程之前,讓我們了解一下 PayPal 集成意味著什麼。想像你正在經營一家銷售手工毛衣的網上商店。你希望給客戶提供一種簡單的支付方式來購買他們舒適的新衣物。這就是 PayPal 的用處!它就像一個數字錢包,允許安全進行網上交易。
### 為什麼使用 PayPal?
1. 它廣受信任
2. 易於實現
3. 支持多種貨幣
4. 為買家和賣家提供保護
既然我們知道了 PayPal 的優點,讓我們看看如何將它集成到我們的 PHP 網站中。
## PayPal 集成文件系統
為了將 PayPal 集成到我們的 PHP 應用程序中,我們需要設置正確的文件結構。這有助於我們保持代碼的組織性和易於維護。相信我,未來的你會為現在的你這樣做而感謝!
這是我們將要使用的文件結構:
project_root/ │ ├── config/ │ └── paypal.php │ ├── includes/ │ └── paypal.php │ ├── public/ │ ├── css/ │ │ └── style.css │ ├── js/ │ │ └── script.js │ └── index.php │ └── vendor/ └── autoload.php
讓我們來分解這個結構:
1. `config/paypal.php`:這個文件將存儲我們的 PayPal API憑據。
2. `includes/paypal.php`:這將包含我們的 PayPal 集成函數。
3. `public/`:這個目錄將托管我們的公共訪問文件。
4. `vendor/`:這是我們的依賴將存在的地方(我們將使用 Composer 來管理)。
## 設置 PayPal API 憑據
在我們能夠開始編程之前,我們需要獲取我們的 PayPal API憑據。這就像獲得我們新的 PayPal 動力汽車的鑰匙!
1. 前往 developer.paypal.com 註冊賬戶(如果你已經有賬戶,則登錄)。
2. 前往 Dashboard 並創建一個新應用程序。
3. 創建後,你將看到你的 Client ID 和 Secret。這些非常重要,所以請妥善保管!
現在,讓我們將這些憑據添加到我們的 `config/paypal.php` 文件中:
```php
<?php
return [
'client_id' => 'YOUR_CLIENT_ID_HERE',
'client_secret' => 'YOUR_CLIENT_SECRET_HERE',
'mode' => 'sandbox' // 實際環境請使用 'live'
];
記得將 'YOUR_CLIENT_ID_HERE' 和 'YOUR_CLIENT_SECRET_HERE' 替換為你實際的 PayPal API憑據。
安裝 PayPal SDK
現在我們已經設置好了憑據,讓我們安裝 PayPal SDK。我們將使用 Composer 來完成這項工作,這就像是一個為 PHP 库個性化購物的個人購物員。
首先,確保你已經安裝了 Composer。然後,在項目根目錄中運行以下命令:
composer require paypal/rest-api-sdk-php
這將安裝 PayPal SDK 並創建 vendor
目錄,其中包含所有必要的文件。
創建 PayPal 集成函數
現在來到有趣的部分——編寫我們的 PayPal 集成函數!我們將在 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("付款描述");
$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 "錯誤:" . $ex->getMessage();
exit(1);
}
}
讓我們來分解這裡發生的事情:
- 我們包含了必要的 PayPal SDK 類。
-
getPayPalApiContext()
函數使用我們憑據設置 PayPal API context。 -
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 集成範例</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>PayPal 付款範例</h1>
<form method="post">
<label for="amount">金額 (USD):</label>
<input type="number" id="amount" name="amount" min="1" step="0.01" required>
<button type="submit">使用 PayPal 付款</button>
</form>
<script src="js/script.js"></script>
</body>
</html>
這創建了一個簡單的表單,用戶可以輸入金額並點擊按鈕通過 PayPal 付款。當表單提交時,它會創建一個 PayPal 付款並將用戶重定向到 PayPal 完成付款。
結論
恭喜你們!你們剛剛用 PHP 創建了你們的第一個 PayPal 集成。我們今天涵蓋了很多內容,從設置文件結構到創建 PayPal 付款。記住,熟能生巧,所以不要害怕嘗試並在你們學到的基礎上建立。
在網頁開發的世界裡,像 PayPal 這樣的支付系統集成是一項寶貴的技能。這就像為你們的 PHP 火箭添加了涡轮增压——它將帶你們在編程旅程中達到新的高度!
繼續編程,繼續學習,最重要的是,玩得開心!直到下次,祝你們編程愉快!
方法 | 描述 |
---|---|
getPayPalApiContext() | 使用 config 文件中的憑據設置並返回 PayPal API context |
createPayPalPayment($amount) | 為指定金額創建一個新的 PayPal 付款 |
Credits: Image by storyset