📜  PHP-PayPal集成(1)

📅  最后修改于: 2023-12-03 14:45:26.931000             🧑  作者: Mango

PHP-PayPal集成

PayPal是一种行业标准的在线支付平台,许多电商网站都使用它来处理交易。在PHP中,可以使用PayPal的API来集成支付功能。本文将介绍如何使用PHP-PayPal集成来实现PayPal的支付功能。

安装PHP-PayPal集成

PHP-PayPal集成是一个使用PHP编写的库,用于与PayPal API进行交互。安装PHP-PayPal集成可以使用Composer,您可以在终端中运行以下命令:

composer require paypal/rest-api-sdk-php

这将下载并安装PHP-PayPal集成。

设置PayPal API凭证

使用PHP-PayPal集成进行PayPal支付之前,需要设置PayPal API的凭证。要设置凭证,请前往PayPal开发人员网站并创建一个应用程序,然后获取客户端ID和秘密。将客户端ID和秘密添加到您的环境文件中,如下所示:

$apiContext = new \PayPal\Rest\ApiContext(
    new \PayPal\Auth\OAuthTokenCredential(
        "CLIENT_ID",
        "CLIENT_SECRET"
    )
);

CLIENT_IDCLIENT_SECRET替换为您的凭证。

创建支付

使用PHP-PayPal集成进行PayPal支付的下一步是创建支付。我们将要创建支付,向PayPal发送付款请求,然后获取回执和PayPal支付ID。

//创建付款对象
$payment = new \PayPal\Api\Payment();
$payment->setIntent('sale')
    ->setPayer(
        new \PayPal\Api\Payer(
            array(
                'payment_method' => 'paypal'
            )
        )
    )
    ->setRedirectUrls(
        new \PayPal\Api\RedirectUrls(
            array(
                'return_url' => 'http://localhost/paypal-payment-successful.php',
                'cancel_url' => 'http://localhost/paypal-payment-cancelled.php'
            )
        )
    )
    ->setTransactions(
        array(
            new \PayPal\Api\Transaction(
                array(
                    'amount' => array(
                        'total' => '10.00',
                        'currency' => 'USD'
                    ),
                    'description' => 'Payment description'
                )
            )
        )
    );

//创建付款
try {
    $payment->create($apiContext);
} catch (\PayPal\Exception\PayPalConnectionException $ex) {
    //如果出错则处理错误
    echo $ex->getCode();
    echo $ex->getData();
    die($ex);
}

//获取回执和PayPal支付ID
$approvalUrl = $payment->getApprovalLink();
$paymentId = $payment->getId();

这将创建付款对象并向PayPal发送付款请求。如果一切顺利,您会收到一个回执,其中包含一个PayPal支付ID。

执行支付

要执行PayPal支付,您需要将用户重定向到PayPal支付页面,并要求他们输入其帐户凭据以授权支付。

header('location:' . $approvalUrl);

这将将用户重定向到PayPal支付页面。如果用户同意支付,PayPal将返回到您提供的回调URL,这将发出POST请求。

处理支付

当用户批准付款并PayPal返回到您的回调URL时,您需要处理支付。特别是,您需要获取PayPal令牌和Payer ID,并使用它们来执行实际支付。

//从PayPal返回付款标识符
$paymentId = $_GET['paymentId'];
$payerId = $_GET['PayerID'];

//获取付款信息对象
try {
    $payment = \PayPal\Api\Payment::get($paymentId, $apiContext);
} catch (\PayPal\Exception\PayPalConnectionException $ex) {
    //如果出错则处理错误
    echo $ex->getCode();
    echo $ex->getData();
    die($ex);
}

//创建自己的执行对象,一步完成付款
$execution = new \PayPal\Api\PaymentExecution();
$execution->setPayerId($payerId);

//执行付款
try {
    $result = $payment->execute($execution, $apiContext);
    echo "支付已成功。";
} catch (\PayPal\Exception\PayPalConnectionException $ex) {
    //如果出错则处理错误
    echo $ex->getCode();
    echo $ex->getData();
    die($ex);
}

这将从PayPal获取付款信息对象,并使用自己的执行对象执行付款。如果一切顺利,您将在屏幕上看到“付款已成功”消息。

总结

在本文中,我们介绍了如何使用PHP-PayPal集成来实现PayPal支付功能。我们首先介绍了如何安装和设置PHP-PayPal集成,然后创建和执行PayPal付款。通过使用PHP-PayPal集成,您可以轻松地向您的网站集成PayPal支付。