killbill/killbill-client

官方PHP客户端,用于Killbill HTTP API

资助包维护!
killbill

0.4.2 2020-05-04 07:22 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

下载swagger-codegen

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基本认证

作者