cloudcogsio / paypal-rest
PayPal REST API的PHP SDK,兼容Omnipay网关
dev-master
2023-01-31 11:13 UTC
Requires
- php: ^7.4
- ext-json: *
- omnipay/common: ^3
- ramsey/uuid: ^4.2.3
This package is auto-updated.
Last update: 2024-09-13 02:27:40 UTC
README
本包旨在实现PayPal REST API,作为一个兼容Omnipay的网关。Omnipay的基本网关操作将得到支持,但也可以直接使用PayPal端点。
PayPal REST API覆盖范围
只计划以下API。
勾选的API已完成。未勾选的API正在开发中。
- 添加跟踪
- 目录产品
- 争议
- 发票
- 订单
- 付款
- 支付
- 订阅
- Webhooks
通过Composer安装
$ composer require cloudcogsio/paypal-rest
用法
1. 实例化网关类
主要网关类实例化方式与Omnipay网关相同。
use Omnipay\Omnipay; $gateway = Omnipay::create(\Cloudcogs\PayPal\RestGateway::class); $gateway ->setTestMode(true) ->setClientId(#YOUR PAYPAL CLIENT ID) ->setSecret(#YOUR PAYPAL SECRET);
2. 生成访问令牌。
$accessToken = $gateway->GenerateAccessToken()->send();
注意,访问令牌此时已存储在网关中。
- 访问令牌的管理尚未包含在本库中。
- 您应实现自己的方法来保存和重用访问令牌,直到其过期,以避免每次API调用都生成令牌,从而触碰到PayPal的查询限制。
您可以通过以下方式将先前检索到的访问令牌设置在网关中
$gateway->setAccessToken($accessToken);
3. 开始进行API调用
/** * List products * https://developer.paypal.com/docs/api/catalog-products/v1/#products_list */ // You can pass API parameters directly $ListProducts = $gateway->ListProducts(['pageNumber' => 1, 'pageSize' => 5]); // Alternatively, use the API methods (preferred) $ListProducts = $gateway->ListProducts(); $ListProducts ->setPageNumber(1) ->setPageSize(5); $APIResponse = $ListProducts->send(); // Check for a successful response if($APIResponse->isSuccessful()) { $productList = $APIResponse->getProductList(); // You can iterate over collections while(($product = $productList->current()) != null) { print_r($product); $productList->next(); } } // Handle errors else { $error = $APIResponse->getPayPalError(); print_r($error); }
支持
如果您在使用Omnipay时遇到一般问题,我们建议在Stack Overflow上发帖。请确保添加omnipay标签,以便更容易找到。
如果您认为您已发现一个bug,请通过GitHub问题跟踪器报告,或者更好的方法是,分支库并提交一个pull request。