kurilovvo / rest-api-sdk-php
PayPal的PHP SDK用于REST API
Requires
- php: >=5.3.0
- ext-curl: *
- ext-json: *
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-28 17:12:45 UTC
README
此存储库包含PayPal的PHP SDK和REST API的示例。
在开始使用SDK之前,请了解REST API的现有问题和当前不可用或即将推出的功能(这些SDK基于这些API)。
先决条件
安装
- 使用Composer
composer是安装SDK的推荐方式。要将SDK用于项目,请在应用程序的composer.json中添加以下依赖项,并运行composer update --no-dev
以获取SDK。
您可以使用Composer官方网站上的说明下载composer。
先决条件
- composer用于获取依赖项(见https://getcomposer.org.cn)
安装步骤
目前,PayPal PHP Rest API SDK可在https://packagist.org.cn找到。要在您的项目中使用它,您需要在项目的composer.json文件中将其作为依赖项包含。有两种方法可以实现
-
在项目根位置(项目composer.json所在位置)运行
composer require paypal/rest-api-sdk-php:*
命令。 -
或,手动编辑composer.json文件中的
require
字段,并添加"paypal\rest-api-sdk-php" : "*"
。
结果样本composer.json将如下所示
{ ... "name": "sample/website", "require": { "paypal/rest-api-sdk-php" : "*" } ... }
- 直接下载(不使用Composer)
如果您不想使用composer,您可以获取包含PayPal PHP Rest API SDK及其所有依赖项的SDK zip文件。
安装步骤
-
从我们的Releases页面下载所需的版本。每个版本都将有一个
direct-download-*.zip
,其中包含PHP Rest API SDK及其依赖项。 -
解压并将项目中的vendor目录复制到您的项目中,例如项目根目录。
-
如果您的应用程序有一个bootstrap/autoload文件,您应该在其中添加
include '<vendor directory location>/vendor/autoload.php'
。应将<vendor directory>
的位置替换为您在应用程序中下载的vendor
目录的位置。 -
此autoload.php文件注册了一个自定义自动加载器,可以自动加载PayPal SDK文件,这允许您在应用程序中访问PHP SDK系统。
运行示例
- 克隆存储库并导航到samples文件夹。
- 示例依赖于SDK,您可以使用
composer
获取依赖项。请确保您已安装composer,导航到根目录并运行composer update --no-dev
以获取SDK。 - 可选地,更新bootstrap.php文件,使用您从开发者门户找到的自己的客户端ID和客户端密钥。
- 运行'samples'文件夹中的任何示例以查看API可以做什么。
使用说明
编写使用SDK的应用程序
- 更新您的项目composer.json文件,并运行
composer require paypal/rest-api-sdk-php:*
添加对PHP Rest API SDK的依赖,然后运行composer update --no-dev
来获取所有依赖。 - 将示例配置文件
sdk_config.ini
复制到您选择的位置,并使用以下定义指令让SDK知道您的配置路径。
define('PP_CONFIG_PATH', /path/to/your/sdk_config.ini);
- 从开发者门户获取您的clientId和client secret。您将使用它们来创建一个
OAuthTokenCredential
对象。 - 现在您已经准备好进行第一次API调用。根据您的需求创建一个资源对象,并调用相关的操作或调用资源类上的静态方法之一。
use PayPal\Rest\ApiContext; use PayPal\Auth\OAuthTokenCredential; use PayPal\Api\Payment; $apiContext = new ApiContext(new OAuthTokenCredential('<clientId>', '<clientSecret>')); $payment = new Payment(); $payment->setIntent("Sale"); ... $payment->create($apiContext); *OR* $payment = Payment::get('payment_id', $apiContext);
SDK配置
本仓库中的示例代码从sdk_config.ini
文件中获取SDK配置。如果您不想使用ini文件或想动态选择配置,可以使用$apiContext->setConfig()
方法传入配置作为哈希表。请参阅sample/bootstrap.php
文件中的示例。
测试
我们在SDK包中包含两种类型的测试。单元测试和集成测试。
- 单元测试
- 可以在PayPal SDK根目录下运行此命令
phpunit
来执行单元测试。 - 它使用存储在
phpunit.xml
文件中的配置执行测试。
- 可以在PayPal SDK根目录下运行此命令
- 集成测试
- 集成测试默认通过curl请求沙盒环境。它将测试单元测试以及集成测试。要在PayPal SDK根目录下执行,请运行此命令
phpunit -c phpunit.integration.xml
。 - 它使用存储在
phpunit.integration.xml
文件中的配置执行测试。 - 配置可以从
tests\sdk_config.ini
文件中更改。
- 集成测试默认通过curl请求沙盒环境。它将测试单元测试以及集成测试。要在PayPal SDK根目录下执行,请运行此命令
开发者注意事项
API模型构造函数
您可以通过传递JSON字符串或对象的数组表示形式到构造函数中来初始化API对象。例如:
$obj = new SimpleClass('{"name":"test","description":"description"}');
$obj->getName();
$obj->getDescription();
访问器验证
我们最近引入了一种验证,用于确定从服务器收到的JSON响应转换后的模型对象是否包含所有适当的访问器(获取器和设置器)。
此验证可以通过更新您sdk_config.ini文件中的配置设置来配置。
请访问我们的示例sdk_config.ini
;Validation Configuration
[validation]
; If validation is set to strict, the PPModel would make sure that
; there are proper accessors (Getters and Setters) for each model
; objects. Accepted value is
; 'log' : logs the error message to logger only (default)
; 'strict' : throws a php notice message
; 'disable' : disable the validation
validation.level=strict
警告消息将被记录到您的PayPal.log文件中,例如:
PayPal\Validation\ModelAccessorValidator: WARNING: Missing Accessor: PayPal\Api\Payment:setFirstName . Please let us know by creating an issue at https://github.com/paypal/rest-api-sdk-php/issues
贡献
- 如果您在sdk中找到了一个问题/改进的解决方案,这对每个人都有帮助,请随时发送给我们一个pull request。
- 创建修复的理想方法是fork存储库,在您的存储库中创建一个分支,然后从该分支创建pull request。
- 如果pull request中有足够的注释/文档和测试,那就更好了。
- 有关贡献的一般想法,请遵循此处提到的指南这里。
更多帮助
- API参考
- [报告问题/功能请求] (https://github.com/paypal/rest-api-sdk-php/issues)
- [使用Paypal REST API的Pizza App] (https://github.com/paypal/rest-api-sample-app-php)