PHP 语言 实现 PayPal Pro 集成

PHP阿木 发布于 2025-07-02 12 次阅读


PayPal Pro 集成到 PHP 应用中的实现指南

PayPal Pro 是 PayPal 提供的一种高级支付解决方案,它允许商家接受信用卡和借记卡支付。在 PHP 应用中集成 PayPal Pro 可以大大简化在线支付流程,提高用户支付体验。本文将详细介绍如何在 PHP 应用中实现 PayPal Pro 集成,包括准备工作、配置设置、代码实现以及测试验证。

准备工作

在开始集成 PayPal Pro 之前,你需要完成以下准备工作:

1. 注册 PayPal 商户账户:你需要注册一个 PayPal 商户账户,并获取你的商户 ID(Merchant ID)和 API 密钥(API Username、API Password 和 API Signature)。

2. 创建 PayPal Pro 订单:在 PayPal 商户中心,创建一个新的 PayPal Pro 订单,并获取订单 ID(Order ID)。

3. 了解 PayPal Pro API:熟悉 PayPal Pro API 的基本概念和调用方法,包括支付请求、授权请求和捕获请求等。

配置设置

在 PHP 应用中集成 PayPal Pro,首先需要在你的项目中创建一个 PayPal Pro 配置文件,用于存储 API 密钥和其他相关信息。以下是一个简单的配置文件示例:

php

<?php


// PayPal Pro 配置文件


return [


'merchant_id' => 'YOUR_MERCHANT_ID',


'api_username' => 'YOUR_API_USERNAME',


'api_password' => 'YOUR_API_PASSWORD',


'api_signature' => 'YOUR_API_SIGNATURE',


'order_id' => 'YOUR_ORDER_ID',


'return_url' => 'YOUR_RETURN_URL', // 支付成功后的回调地址


'cancel_url' => 'YOUR_CANCEL_URL', // 支付取消后的回调地址


];


代码实现

1. 创建支付请求

在用户提交订单后,你需要创建一个支付请求并发送到 PayPal Pro。以下是一个使用 PayPal Pro API 创建支付请求的示例代码:

php

<?php


require 'paypal_config.php';

// 创建支付请求


$paymentRequest = [


'action' => 'Sale',


'amount' => [


'total' => '10.00',


'currency' => 'USD'


],


'order_id' => $config['order_id'],


'description' => 'Product purchase',


'payer' => [


'payment_method' => 'credit_card',


'funding_instruments' => [


[


'credit_card' => [


'type' => 'visa',


'number' => '4242424242424242',


'exp_month' => '12',


'exp_year' => '2025',


'cvv2' => '123',


'first_name' => 'John',


'last_name' => 'Doe'


]


]


]


]


];

// 发送支付请求


$ch = curl_init('https://api.sandbox.paypal.com/v1/payments/payment');


curl_setopt($ch, CURLOPT_POST, true);


curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($paymentRequest));


curl_setopt($ch, CURLOPT_HTTPHEADER, [


'Content-Type: application/json',


'Authorization: Basic ' . base64_encode($config['api_username'] . ':' . $config['api_password'])


]);


curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


$response = curl_exec($ch);


curl_close($ch);

// 处理响应


if ($response) {


$payment = json_decode($response, true);


if (isset($payment['id'])) {


// 支付成功


echo "Payment successful: " . $payment['id'];


} else {


// 支付失败


echo "Payment failed: " . $payment['error']['message'];


}


} else {


// 请求失败


echo "Request failed: " . curl_error($ch);


}


?>


2. 处理回调

当用户完成支付后,PayPal 会将支付结果发送到你的回调地址。以下是一个处理 PayPal 回调的示例代码:

php

<?php


require 'paypal_config.php';

// 获取 PayPal 回调参数


$paymentId = $_GET['paymentId'];


$paymentStatus = $_GET['paymentStatus'];

// 验证支付状态


$ch = curl_init('https://api.sandbox.paypal.com/v1/payments/payment/' . $paymentId);


curl_setopt($ch, CURLOPT_HTTPHEADER, [


'Content-Type: application/json',


'Authorization: Basic ' . base64_encode($config['api_username'] . ':' . $config['api_password'])


]);


curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


$response = curl_exec($ch);


curl_close($ch);

$payment = json_decode($response, true);

if ($payment['state'] == 'approved') {


// 支付成功


echo "Payment approved: " . $payment['id'];


} else {


// 支付失败


echo "Payment failed: " . $payment['state'];


}


?>


测试验证

在完成代码实现后,你需要进行测试以确保 PayPal Pro 集成正常工作。以下是一些测试步骤:

1. 本地测试:在本地环境中运行你的 PHP 应用,并使用 PayPal 沙箱环境进行测试。

2. 支付测试:使用测试信用卡进行支付测试,确保支付请求能够成功发送到 PayPal。

3. 回调测试:验证 PayPal 回调是否能够正确处理支付结果。

4. 错误处理:测试错误处理逻辑,确保在支付失败或请求错误时能够给出适当的反馈。

总结

通过以上步骤,你可以在 PHP 应用中成功集成 PayPal Pro。PayPal Pro 提供了强大的支付功能,可以帮助你简化在线支付流程,提高用户支付体验。在实际应用中,你可能需要根据具体需求调整代码和配置,以确保 PayPal Pro 集成满足你的业务需求。