terminal42/swissbilling-api

瑞士Billing API客户端

1.1.0 2024-02-05 10:22 UTC

This package is auto-updated.

Last update: 2024-09-05 11:32:10 UTC


README

用PHP编写的SwissBilling API客户端。

注意:此仓库仍在早期开发阶段,可能会发生变化!

安装

composer require terminal42/swissbilling-api

用法

基础知识

使用Client对象与API交互。所有API类型都有DocBlock属性,因此智能IDE(如PhpStorm)将为您在属性上提供自动完成支持。

use Terminal42\SwissbillingApi\Client;
use Terminal42\SwissbillingApi\Api\ApiFactory;
use Terminal42\SwissbillingApi\Type\Debtor;
use Terminal42\SwissbillingApi\Type\Merchant;
use Terminal42\SwissbillingApi\Type\InvoiceItem;
use Terminal42\SwissbillingApi\Type\Transaction;
use Terminal42\SwissbillingApi\Type\TransactionStatus;

$client = new Client(new ApiFactory());

$merchant = new Merchant('user', 'password', 'success_url', 'cancel_url', 'error_url');

$transaction = new Transaction();
// fill in the required transaction properties
// $transaction->amount = 100;

$debtor = new Debtor();
// fill in the required debtor properties
// $transaction->firstname = 'John';
// $transaction->lastname = 'Doe';

$items = [
    new InvoiceItem(),
];

/** @var TransactionStatus $status */
$status = $client->request($transaction, $debtor, $items, $merchant);

var_dump($status->hasError());

多次调用/依赖注入

您可以将商家信息传递给Client,而不是在每次方法调用中传递,例如在使用带有依赖注入的Symfony bundle时。

$merchant = new Merchant('user', 'password', 'success_url', 'cancel_url', 'error_url');
$client = new Client(new ApiFactory(), $merchant);

// No need to pass the merchant anymore
$status = $client->request($transaction, $debtor, $items);

软件最佳实践

此仓库遵循SemVer。如果您依赖于稳定的API,请确保安装版本标签。

许可证

MIT许可证下授权。