要创建一个使用 PayPal 的支付系统,你可以利用 PayPal 的 REST API。这里是一个基本示例,它展示了如何使用 PHP 和 PayPal 的 SDK 来创建一个简单的支付流程。请注意,你需要先在 PayPal Developer Center 注册一个账户,并创建一个应用程序来获取你的 client ID 和 secret。

安装 PayPal REST SDK: 首先,你需要安装 PayPal 的 REST SDK。你可以使用 Composer 来安装 SDK。

在你的项目目录中,运行以下命令来安装 PayPal SDK:

composer require paypal/rest-api-sdk-php

设置 PayPal SDK: 使用你的 client ID 和 secret 来配置 SDK。

创建一个名为 bootstrap.php 的文件,并添加以下内容:

require __DIR__ . '/vendor/autoload.php';

use PayPal\Auth\OAuthTokenCredential;
use PayPal\Rest\ApiContext;

// 替换这些值为你的 ClientID 和 Secret
$clientId = 'YOUR_CLIENT_ID';
$clientSecret = 'YOUR_CLIENT_SECRET';

$apiContext = new ApiContext(
    new OAuthTokenCredential(
        $clientId,
        $clientSecret
    )
);

$apiContext->setConfig([
    'mode' => 'sandbox', // 切换到 'live' 以进行实际的支付处理
    'log.LogEnabled' => true,
    'log.FileName' => 'PayPal.log',
    'log.LogLevel' => 'DEBUG', // PLEASE USE `INFO` LEVEL FOR LOGGING IN LIVE ENVIRONMENTS
    'cache.enabled' => true,
]);

这将配置 PayPal SDK 以使用你的凭据。

创建一个支付: 现在你可以创建一个支付。在你的应用程序中创建一个名为 create_payment.php 的新文件,并添加以下内容:

require 'bootstrap.php';

use PayPal\Api\Amount;
use PayPal\Api\Payer;
use PayPal\Api\Payment;
use PayPal\Api\RedirectUrls;
use PayPal\Api\Transaction;

$payer = new Payer();
$payer->setPaymentMethod('paypal');

$amount = new Amount();
$amount->setTotal('30.00'); // 设置支付金额
$amount->setCurrency('USD'); // 设置货币

$transaction = new Transaction();
$transaction->setAmount($amount);
$transaction->setDescription('Example transaction');

$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl("http://example.com/your_redirect_url_here")
              ->setCancelUrl("http://example.com/your_cancel_url_here");

$payment = new Payment();
$payment->setIntent('sale')
        ->setPayer($payer)
        ->setTransactions(array($transaction))
        ->setRedirectUrls($redirectUrls);

try {
    $payment->create($apiContext);
    echo "\n\nRedirect user to approval_url: " . $payment->getApprovalLink() . "\n";
} catch (Exception $ex) {
    // 处理错误
    exit(1);
}

这个脚本创建了一个 PayPal 支付,并打印出用户需要访问的批准 URL。

请注意,这只是一个基本示例。在生产环境中,你需要处理各种情况,如支付批准后的操作、支付失败的错误处理、以及安全性考虑(如防止 CSRF 攻击)。确保阅读 PayPal 的官方文档来了解所有必要的实践和安全措施。