machobearstudio/killbill-client

官方的Killbill HTTP API PHP客户端

0.4.2 2020-05-04 07:22 UTC

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

下载 swagger-codegen

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

作者