killbill / killbill-client
官方PHP客户端,用于Killbill HTTP API
0.4.2
2020-05-04 07:22 UTC
Requires
- php: ^5.5 || ^7.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^6.2
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-11 14:21:13 UTC
README
PHP客户端库,用于Kill Bill。
兼容性
需求
PHP 8.1及更高版本
安装与使用
Composer
通过composer引入库
composer require killbill/killbill-client
手动安装
下载文件并包含autoload.php
require_once('/path/to/./vendor/autoload.php');
测试
要运行单元测试
composer install
./vendor/bin/phpunit
入门
请按照安装程序操作,然后运行以下命令
<?php require_once(__DIR__ . '/vendor/autoload.php'); use Killbill\Client\KillbillClient; use Killbill\Client\Swagger\Model\Account; use Killbill\Client\Swagger\Model\Tenant; // Setup Killbill client $client = new KillbillClient(null, 'https://:8080', 'ADMIN_LOGIN', 'ADMIN_PASSWORD'); // Set these values for your particular tenant $tenant = new Tenant(); $tenant->setApiKey('bob'); $tenant->setApiSecret('lazar'); $tenant = $this->client->getTenantApi()->createTenant($tenant, 'pierre', 'PHP_TEST', 'no comment'); // Point the client to work with this tenant $client->setApiKey('bob'); $client->setApiSecret('lazar'); // Unique id for this account $externalAccountId = uniqid(); $accountData = new Account(); $accountData->setName('Killbill php test'); $accountData->setExternalKey($externalAccountId); $accountData->setEmail('test-' . $externalAccountId . '@kill-bill.org'); $accountData->setCurrency('USD'); $accountData->setPaymentMethodId(null); $accountData->setAddress1('12 rue des ecoles'); $accountData->setAddress2('Poitier'); $accountData->setCompany('Renault'); $accountData->setState('Poitou'); $accountData->setCountry('France'); $accountData->setPhone('81 53 26 56'); $accountData->setFirstNameLength(4); $accountData->setTimeZone('UTC'); $account = $client->getAccountApi()->createAccount($accountData, 'pierre', 'PHP_TEST', 'no comment'); // In case you need to make custom requests to Killbill plugins using guzzle: use Killbill\Client\AddAuthHeadersMiddleware; $guzzle = $client->getGuzzleClient(); // base_host is already configured $response = $guzzle->request('POST', '/plugins/killbill-stripe/checkout', [ 'form_params' => [ 'kbAccountId' => $account->getAccountId(), 'successUrl' => $successUrl, 'cancelUrl' => $cancelUrl, ], //BASIC_AUTH adds admin/password credenditals; //TENANT_KEY adds key/secret header AddAuthHeadersMiddleware::OPTION => AddAuthHeadersMiddleware::BASIC_AUTH | AddAuthHeadersMiddleware::TENANT_KEY, ]);
查看测试以获取更多示例。
在非Composer环境中使用客户端
如果您想使用客户端但尚未使用Composer,请按照以下步骤操作
- 本地安装composer: 说明
- 运行
composer require killbill/killbill-client
。这将下载库到vendor/
文件夹,并创建一个composer.json
和一个composer.lock
文件来定义此依赖。 - 包含从
vendor/
文件夹自动生成的autoload.php
文件。 - 您现在可以使用客户端,如上所述。
- 如果您不想有额外的构建步骤,只需将
vendor/
文件夹检查到您的存储库中。
测试
Killbill PHP客户端使用phpunit作为测试框架。测试可以通过本地使用composer test
或在运行在127.0.0.1:8080
的实时Killbill实例上使用composer test-integration
来运行。
需求
PHP库需要PHP 5.5或更高版本,并且已编译libcurl(例如,您需要在Ubuntu上安装php-curl包)。
支持
请随时在killbilling-users Google Group上提问。
API生成
此PHP包由Swagger Codegen项目自动生成
- API版本:0.24.0
- 构建包:io.swagger.codegen.v3.generators.php.PhpClientCodegen
wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.22/swagger-codegen-cli-3.0.22.jar -O swagger-codegen-cli.jar
并运行以下命令
./build.sh
请参阅https://github.com/swagger-api/swagger-codegen/tree/3.0.0以获取swagger-codegen的文档
生成器使用自定义模板文件夹中的自定义模板,基于swagger的默认模板(https://github.com/swagger-api/swagger-codegen-generators/tree/master/src/main/resources/handlebars/php)
生成的客户端与swagger的主要差异
- 日期格式化为Y-m-d字符串,而不是ISO8601字符串
- 布尔值格式化为true/false字符串,而不是0/1字符串
- 查询中的数组格式化为'csv'格式,而不是'multi'(例如,在账户的删除自定义字段方法上的自定义字段id列表)
- 体中的对象数组在格式化时不会失败(例如,在账户的添加自定义字段方法上的自定义字段对象)
API端点文档
所有URI相对于/
模型文档
- 账户
- 账户邮箱
- 账户时间线
- 管理员支付
- 审计日志
- 封锁价格
- 封锁状态
- 批量订阅捆绑
- 捆绑
- 捆绑时间线
- 目录
- 组合托管支付页面
- 组合支付交易
- 信用
- 自定义字段
- 时长
- 实体
- 事件订阅
- 托管支付页面字段
- 托管支付页面表单描述符
- 发票
- 发票干运行
- 发票项
- 发票支付
- 发票支付交易
- 限制
- 节点命令
- 节点命令属性
- 逾期
- 逾期条件
- 逾期状态
- 逾期状态配置
- 支付
- 支付尝试
- 支付方式
- 支付方式插件详情
- 支付交易
- 阶段
- 阶段价格
- 计划
- 计划详情
- 插件信息
- 插件属性
- 插件服务信息
- 价格
- 价格表
- 产品
- 角色定义
- 卷起单元
- 卷起使用
- 会话
- 简单计划
- 主题
- 订阅
- 订阅使用记录
- 标签
- 标签定义
- 租户
- 租户键值
- 等级
- 等级价格
- 分级封锁
- 单元
- 单元使用记录
- 使用
- 使用价格
- 使用记录
- 用户角色
授权文档
Killbill API密钥
- 类型:API密钥
- API密钥参数名:X-Killbill-ApiKey
- 位置:HTTP头
Killbill API密钥
- 类型:API密钥
- API密钥参数名:X-Killbill-ApiSecret
- 位置:HTTP头
基本认证
- 类型:HTTP基本认证