machobearstudio / killbill-client
官方的Killbill HTTP API PHP客户端
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 not auto-updated.
Last update: 2024-09-27 02:11:26 UTC
README
用于 Kill Bill 的PHP客户端库。
与Kill Bill的兼容性
要求
PHP 5.5 及以上
安装与使用
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
在本地运行,或通过使用 composer test-integration
对运行在 127.0.0.1:8080
的实时Killbill实例进行测试。
要求
PHP库需要PHP 5.5或更高版本以及编译的 libcurl(例如,您需要Ubuntu上的php-curl包)。
支持
请在 killbilling-users Google群组中随意提问。
API生成
此PHP包由 Swagger Codegen 项目自动生成
- API版本:0.22.8
- 构建包:io.swagger.codegen.v3.generators.php.PhpClientCodegen
wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.19/swagger-codegen-cli-3.0.19.jar -O swagger-codegen-cli.jar
并运行以下命令
./build.sh
请参阅 https://github.com/swagger-api/swagger-codegen/tree/3.0.0 了解swagger-codegen的文档
此生成器在此处使用基于swagger默认模板的模板文件夹中的自定义模板
与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基本认证