kurilovvo/rest-api-sdk-php

PayPal的PHP SDK用于REST API

1.14 2014-10-16 14:57 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:12:45 UTC


README

Build Status Coverage Status Latest Stable Version Total Downloads

此存储库包含PayPal的PHP SDK和REST API的示例。

在开始使用SDK之前,请了解REST API的现有问题和当前不可用或即将推出的功能(这些SDK基于这些API)。

先决条件

安装

- 使用Composer

composer是安装SDK的推荐方式。要将SDK用于项目,请在应用程序的composer.json中添加以下依赖项,并运行composer update --no-dev以获取SDK。

您可以使用Composer官方网站上的说明下载composer。

先决条件

安装步骤

目前,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文件中的配置执行测试。
  • 集成测试
    • 集成测试默认通过curl请求沙盒环境。它将测试单元测试以及集成测试。要在PayPal SDK根目录下执行,请运行此命令phpunit -c phpunit.integration.xml
    • 它使用存储在phpunit.integration.xml文件中的配置执行测试。
    • 配置可以从tests\sdk_config.ini文件中更改。

开发者注意事项

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中有足够的注释/文档和测试,那就更好了。
  • 有关贡献的一般想法,请遵循此处提到的指南这里

更多帮助