paddlehq / paddle-php-sdk
Paddle Billing的PHP SDK。
Requires
- php: ^8.1
- ext-json: *
- ext-mbstring: *
- myclabs/php-enum: ^1.8
- php-http/async-client-implementation: ^1.0
- php-http/client-common: ^1.5 || ^2.0
- php-http/discovery: ^1.15
- php-http/httplug: ^1.1 || ^2.0
- php-http/logger-plugin: ^1.3
- php-http/message: ^1.5
- psr/http-factory: ^1.0
- psr/http-factory-implementation: ^1.0
- psr/log: ^1.0 || ^2.0 || ^3.0
- symfony/property-access: ^5.4 || ^6.3 || ^7.0
- symfony/serializer: ^5.4 || ^6.3 || ^7.0
- symfony/uid: ^5.4 || ^6.3 || ^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.49
- guzzlehttp/psr7: ^2.6
- monolog/monolog: ^3.5
- php-http/curl-client: ^2.3
- php-http/mock-client: ^1.6
- phpstan/phpstan: ^1.11
- phpunit/phpunit: ^9.5 || ^10.0
- rector/rector: dev-main
- symfony/var-dumper: ^6.3
- dev-main
- v1.2.0
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.1
- v1.0.0
- 0.3.0
- v0.2.2
- v0.2.1
- v0.2.0
- v0.1.1
- v0.1.0
- dev-release/v1.2.0
- dev-fix/transaction-paymentmethodid-test
- dev-feat/event-notification-id
- dev-feat/revert-transaction-import-meta
- dev-feat/event-notification-id-sub-type
- dev-feat/webhook-notifications
- dev-feat/webhook-types
- dev-feat/custom-subscription-prices
- dev-feat/notification-settings-pagination-filter
- dev-fix/required-preview-price-items
- dev-feat/disposition-query
- dev-renovate/php-8.x
- dev-feat/verification-test-coverage
- dev-roadie
This package is auto-updated.
Last update: 2024-09-18 11:16:26 UTC
README
Paddle Billing是一个完整的数字产品销售和订阅管理平台,专为现代软件业务设计。它可以帮助您增加收入,保留客户,并扩大您的运营规模。
这是一个PHP SDK,您可以使用它将Paddle Billing集成到用PHP编写的应用程序中。
对于在前端使用Paddle,请使用Paddle.js。您可以使用它打开结账、安全地收集支付信息、构建定价页面,并与Paddle Retain集成。
重要:此包与Paddle Billing兼容。它不支持Paddle Classic。要使用Paddle Classic,请参阅:Paddle Classic API参考
要求
PHP 8.1及以上。
Composer
您可以通过Composer安装绑定。运行以下命令
composer require paddlehq/paddle-php-sdk
要使用绑定,请使用Composer的自动加载
require_once 'vendor/autoload.php';
用法
要验证,您需要一个API密钥。您可以在Paddle > 开发者工具 > 验证中创建和管理API密钥。
在初始化新的Paddle客户端时传递您的API密钥。
use Paddle\SDK\Client; $paddle = new Client('API_KEY');
您还可以传递一个环境以与沙箱一起工作
use Paddle\SDK\Client; use Paddle\SDK\Environment; use Paddle\SDK\Options; $paddle = new Client( apiKey: 'API_KEY', options: new Options(Environment::SANDBOX), );
请注意,API密钥对沙箱和实时账户是分开的,因此您需要为每个环境生成密钥。
示例
列出实体
您可以使用资源中的list
函数列出支持的实体。它返回一个迭代器,有助于处理多个页面。
use Paddle\SDK\Client; $paddle = new Client('API_KEY'); $products = $paddle->products->list(); // List returns an iterable, so pagination is handled automatically. foreach ($products as $product) { echo $product->id; }
创建实体
您可以使用资源中的create
函数创建支持的实体。它接受资源的相应Create
操作,例如CreateProduct
。创建的实体将被返回。
use Paddle\SDK\Client; use Paddle\SDK\Entities\Shared\TaxCategory; use Paddle\SDK\Resources\Products\Operations\CreateProduct; $paddle = new Client('API_KEY'); $product = $paddle->products->create( new CreateProduct( name: 'ChatApp Education', taxCategory: TaxCategory::Standard(), ), );
更新实体
您可以使用资源中的update
函数更新支持的实体。它接受要更新的实体的id
和相应的Update
操作,例如UpdateProduct
。更新的实体将被返回。
use Paddle\SDK\Client; use Paddle\SDK\Resources\Products\Operations\UpdateProduct; $paddle = new Client('API_KEY'); $operation = new UpdateProduct( name: 'ChatApp Professional' ); $product = $paddle->products->update('id', $operation);
当操作需要多个id
时,update
函数接受多个参数。例如,要更新客户的地址,请传递customerId
和addressId
$address = $paddle->addresses->update( 'customer_id', 'address_id', $operation, );
获取实体
您可以使用资源中的get
函数获取实体。它接受要获取的实体的id
。实体将被返回。
use Paddle\SDK\Client; $paddle = new Client('API_KEY'); $product = $paddle->products->get('id');
资源
Webhook签名验证
SDK包含一个辅助类,用于验证Paddle通知发送的Webhook签名。
use Paddle\SDK\Notifications\Secret; use Paddle\SDK\Notifications\Verifier; (new Verifier())->verify( $request, new Secret('WEBHOOK_SECRET_KEY') );