PayPal PHP Merchant SDK 使用教程
1. 项目目录结构及介绍
merchant-sdk-php/
├── lib/
│ └── PayPal/
│ ├── ... (各种SDK核心文件)
├── samples/
│ ├── IPN/
│ │ └── ... (IPN示例文件)
│ └── ... (其他示例文件)
├── .gitattributes
├── .gitignore
├── CHANGELOG.md
├── LICENSE.txt
├── README.md
├── composer.json
└── ... (其他配置文件)
目录结构说明
- lib/PayPal/: 包含SDK的核心文件,包括与PayPal API交互的各种类和方法。
- samples/: 包含各种示例代码,帮助开发者快速上手使用SDK。
- IPN/: 包含IPN(Instant Payment Notification)的示例代码。
- .gitattributes: Git属性配置文件。
- .gitignore: Git忽略文件配置。
- CHANGELOG.md: 项目更新日志。
- LICENSE.txt: 项目许可证文件。
- README.md: 项目介绍和使用说明。
- composer.json: Composer依赖管理文件。
2. 项目启动文件介绍
项目的启动文件通常是samples/
目录下的示例文件。例如,samples/SetExpressCheckout.php
是一个典型的启动文件,用于演示如何使用SDK进行Express Checkout的集成。
示例代码片段
// 设置配置文件路径(如果使用配置文件)并注册类加载器
require("PPBootStrap.php");
// 数组包含凭证和配置参数(如果不使用配置文件)
$config = array(
'mode' => 'sandbox',
'acct1.UserName' => 'jb-us-seller_api1.paypal.com',
'acct1.Password' => 'WX4WTU3S8MY44S7F'
);
// 创建请求详情
$itemAmount = new BasicAmountType($currencyId, $amount);
$setECReqType = new SetExpressCheckoutRequestType();
$setECReqType->SetExpressCheckoutRequestDetails = $setECReqDetails;
// 创建请求
$setECReq = new SetExpressCheckoutReq();
$setECReq->SetExpressCheckoutRequest = $setECReqType;
// 执行请求
$paypalService = new PayPalAPIInterfaceServiceService($config);
$setECResponse = $paypalService->SetExpressCheckout($setECReq);
// 检查结果
if(strtoupper($setECResponse->Ack) == 'SUCCESS') {
// 成功
}
3. 项目的配置文件介绍
项目的配置文件主要包括composer.json
和sdk_config.ini
。
composer.json
composer.json
文件用于管理项目的依赖关系。以下是一个示例:
{
"name": "me/shopping-cart-app",
"require": {
"paypal/merchant-sdk-php": "3.8.*"
}
}
sdk_config.ini
sdk_config.ini
文件用于配置SDK的各种参数,如API凭证、模式(沙盒或生产)等。以下是一个示例:
[Account]
acct1.UserName=jb-us-seller_api1.paypal.com
acct1.Password=WX4WTU3S8MY44S7F
acct1.Signature=A1K2...
[Service]
mode=sandbox
使用配置文件
在代码中使用配置文件时,需要设置PP_CONFIG_PATH
常量指向配置文件所在的目录:
define('PP_CONFIG_PATH', '/directory/that/contains/sdk_config.ini');
$service = new PayPalAPIInterfaceServiceService();
通过以上配置,开发者可以轻松地集成PayPal的Express Checkout、Mass Pay和Web Payments Pro API。