PayPal PHP支付流程主要包括以下几个步骤:
-
创建PayPal应用 首先,你需要在PayPal Developer网站(https://developer.paypal.com/)上注册一个帐户并创建一个应用。这将为你提供API密钥和其他身份验证信息,你将需要这些信息来与PayPal API进行交互。
-
安装PayPal PHP SDK 使用Composer安装PayPal PHP SDK。在你的项目根目录中运行以下命令:
composer require paypal/rest-api-sdk-php:*
这将在你的项目中安装PayPal PHP SDK及其依赖项。
- 配置SDK 在你的PHP代码中,引入PayPal SDK并配置API凭据。例如:
require 'vendor/autoload.php'; use PayPal\Rest\ApiContext; use PayPal\Auth\OAuthTokenCredential; $apiContext = new ApiContext( new OAuthTokenCredential( 'YOUR_CLIENT_ID', // ClientID 'YOUR_CLIENT_SECRET' // ClientSecret ) );
将YOUR_CLIENT_ID
和YOUR_CLIENT_SECRET
替换为你在第1步中获得的API凭据。
- 创建支付 创建一个支付对象并设置相关属性,例如支付金额、货币类型、支付方式等。然后,使用PayPal API发送支付请求。例如:
use PayPal\Api\Amount; use PayPal\Api\Details; use PayPal\Api\Item; use PayPal\Api\ItemList; use PayPal\Api\Payer; use PayPal\Api\Payment; use PayPal\Api\RedirectUrls; use PayPal\Api\Transaction; $payer = new Payer(); $payer->setPaymentMethod("paypal"); $item1 = new Item(); $item1->setName('Ground Coffee 40 oz') ->setCurrency('USD') ->setQuantity(1) ->setSku("123123") // Similar to `item_number` in Classic API ->setPrice(7.5); $item2 = new Item(); $item2->setName('Granola bars') ->setCurrency('USD') ->setQuantity(5) ->setSku("321321") // Similar to `item_number` in Classic API ->setPrice(2); $itemList = new ItemList(); $itemList->setItems(array($item1, $item2)); $details = new Details(); $details->setShipping(1.2) ->setTax(1.3) ->setSubtotal(17.50); $amount = new Amount(); $amount->setCurrency("USD") ->setTotal(20) ->setDetails($details); $transaction = new Transaction(); $transaction->setAmount($amount) ->setItemList($itemList) ->setDescription("Payment description") ->setInvoiceNumber(uniqid()); $redirectUrls = new RedirectUrls(); $redirectUrls->setReturnUrl("http://yourdomain.com/return") ->setCancelUrl("http://yourdomain.com/cancel"); $payment = new Payment(); $payment->setIntent("sale") ->setPayer($payer) ->setRedirectUrls($redirectUrls) ->setTransactions(array($transaction)); try { $payment->create($apiContext); } catch (Exception $ex) { echo $ex; exit(1); } $approvalUrl = $payment->getApprovalLink(); header("Location: " . $approvalUrl);
这段代码将创建一个支付对象,设置支付金额、货币类型、支付方式等属性,并使用PayPal API发送支付请求。最后,它将重定向用户到PayPal支付页面。
- 处理支付回调 当用户完成支付后,PayPal将重定向用户回你的网站。你需要在回调URL中处理支付结果。例如:
use PayPal\Api\Payment; use PayPal\Api\PaymentExecution; $paymentId = $_GET['paymentId']; $payment = Payment::get($paymentId, $apiContext); $execution = new PaymentExecution(); $execution->setPayerId($_GET['PayerID']); try { $result = $payment->execute($execution, $apiContext); } catch (Exception $ex) { echo $ex; exit(1); } // 支付成功,处理业务逻辑
这段代码将从PayPal获取支付信息,并使用PayPal API执行支付。如果支付成功,你可以继续处理业务逻辑,例如更新数据库记录、发送确认邮件等。
- 测试支付流程 在完成以上步骤后,你可以使用PayPal Sandbox(https://developer.paypal.com/docs/api-basics/sandbox/)测试你的支付流程。这将允许你在实际支付之前测试你的代码,确保一切正常运行。
总之,PayPal PHP支付流程包括创建PayPal应用、安装和配置SDK、创建支付、处理支付回调以及测试支付流程。通过遵循这些步骤,你可以轻松地在你的PHP项目中集成PayPal支付功能。