pavelmaca/open-banking

OpenBanking 连接器

1.0 2019-12-07 14:49 UTC

This package is auto-updated.

Last update: 2024-09-10 08:56:32 UTC


README

基于捷克 Open-Banking API 标准 的 PHP 库。

支持的服务

  • 账户信息
  • 余额检查
  • 支付初始化(部分)

可扩展性

目标是使用单个接口进行通信,尽可能支持更多的银行。库已包含针对某些 REST API 的特殊验证器和连接器。

身份验证

请求和处理身份验证令牌不在本库的范围内。
使用 \PavelMaca\OpenBanking\Auth\Authentication 接口,您可以使用自己的实现来处理和存储访问令牌。

某些实现需要不同的身份验证参数或额外的头部。在这种情况下,您可以使用 \PavelMaca\OpenBanking\Auth\Authentication\PavelMaca\OpenBanking\Auth\StandardAuthentication 来扩展或实现自己的验证器。

示例

class BankB implements \PavelMaca\OpenBanking\Auth\Authentication
{

    public function getAuthHeaders(): array
    {
        return [
            'X-Special-Header' => 'foo',
            'Authorization' => 'Bearer ' . $this->getAccessToken(),
        ];
    }

    protected function getAccessToken(){
        // Get access token via OAUth 2.0
    }

    public function getCertificate()
    {
        // Custom certificate handling
    }
}

处理 HTTP 连接

使用接口连接器,您可以创建自己的 HTTP 处理器来执行 HTTP 请求。库包含 StandardConnector,它可以将数据填充到目标数据层。

用法

$auth = new \PavelMaca\OpenBanking\Auth\StandardAuthentication();
$auth->setCertificate(__DIR__ . '/../data/cert.crt', 'secretPassword');
$auth->setAccessToken('timeLimitedToken');

$connector = new \PavelMaca\OpenBanking\Bank\StandardConnector($auth, 'http://banka.cz/', 'v1'); 


try {
    $ais = new \PavelMaca\OpenBanking\Standard\AccountInformation($connector);
    $accountList = $ais->getAccountList();
    var_dump($accountList);
    
    $cisp = new \PavelMaca\OpenBanking\Standard\BalanceCheck($connector);
    $transactionDetail = new \PavelMaca\OpenBanking\Standard\CISP\Parts\TransactionDetail('CZK', 100);
    $balanceCheckRequest = new \PavelMaca\OpenBanking\Standard\CISP\BalanceCheckRequest('id', 'CZ010046464', $transactionDetail);
    $cisp->getBalanceCheck($balanceCheckRequest);

    $pisp = new \PavelMaca\OpenBanking\Standard\PaymentInitialization($connector);
    $paymentRequest = new \PavelMaca\OpenBanking\Standard\PISP\DomesticPaymentRequest('id', 100, 'CZK', 'CZ0123', 'CZ0456');
    $accountBalance = $pisp->createPayment($paymentRequest);
} catch (\PavelMaca\OpenBanking\Standard\Exception\StandardException $ex) {
    var_dump($ex);
}

支持的银行

库旨在复制版本 2.0 的捷克标准。具体取决于特定的实现,库应该处理所有遵循捷克 Open-Banking 标准的银行。

已测试