An API client for SwissBilling written in PHP.
ATTENTION: This repo is still in early development and subject to changes!
composer require terminal42/swissbilling-api
Use the Client
object to interact with the API. All API types have DocBlock properties, so a smart IDE (like PhpStorm)
will give you autocomplete support on the properties.
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());
You can pass the merchant information to the Client instead of passing it on every method call, e.g. if using this in a Symfony bundle with dependency injection.
$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);
This repository is following SemVer. If you rely on a stable API, make sure to install a version tag.
Licensed under the MIT license.