seem2810 / php-fints
PHP库,用于fints和hbci协议
Requires
- php: >=8.0
- ext-curl: *
- ext-mbstring: *
- psr/log: ^1|^2|^3
Requires (Dev)
- friendsofphp/php-cs-fixer: 3.*
- php-mock/php-mock-phpunit: 2.6.*
- phpunit/phpunit: 9.5.*
Suggests
- abcaeffchen/sephpa: 1.*
- monolog/monolog: Allow sending log messages to a variety of different handlers
- seem2810/php-sepa-xml: dev-master
This package is auto-updated.
Last update: 2024-09-16 13:24:17 UTC
README
实现FinTS/HBCI协议以下功能的PHP库:
- 获取账户
- 获取余额
- 获取交易
- 执行直接借记
- 执行转账
- 注意,任何在规范C部分中提到的其他功能都应该相对容易实现。
从mschindler83/fints-hbci-php分支而来,但后来主要进行了重写。
入门
在使用此库(或任何其他FinTS库)之前,您必须向Die Deutsche Kreditwirtschaft注册您的应用程序以获取您的注册号。请注意,此过程可能需要几周时间。首先,您将在几天后收到您的注册号,但随后您必须等待0到8+周才能将注册号发送到您的银行服务器。如果您有多个银行,它们可能在不同时间到达。
然后通过composer安装库
composer require nemiah/php-fints
查看"Samples"文件夹中的示例以开始您的代码。在init.php
中填写所需的配置(在注册后可以从www.hbci-zka.de获取服务器详细信息)。然后执行tanModesAndMedia.php
和之后的login.php
。一旦您能够无任何问题登录,您就可以继续其他示例。
有特殊需求的银行
如果您使用此库开发在线银行应用程序,请注意以下异常:
Hypovereinsbank
当使用https://hbci-01.hypovereinsbank.de/bank/hbci URL时,BLZ 71120078将抛出"Unbekanntes Kreditinstitut"异常。您必须使用BLZ 70020270。
if (trim($url) == 'https://hbci-01.hypovereinsbank.de/bank/hbci')
$blz = '70020270';
ING Diba
这家银行不支持PSD2
if(trim($blz) == "50010517")
$fints->selectTanMode(new Fhp\Model\NoPsd2TanMode());
贡献
欢迎贡献!有关一些背景信息,请参阅开发者指南。
我们使用了一个稍微修改过的版本Symfony Coding-Style。在发送PR之前,请运行
composer update
和
composer cs-fix
。
银行兼容性
不同的银行实现了HBCI和FinTS规范的不同的版本,有时它们还以不同的方式解释规范。此外,银行在验证(一些可能容忍轻微错误请求)、TAN(一些比其他银行更频繁地要求TAN)和允许的参数(并非所有银行都支持所有参数组合)方面表现不同。
此库旨在与支持根据PSD2法规的FinTS V3.0和基于PIN/TAN的身份验证的所有银行兼容,这包括大多数相关的德国银行。目前,它至少与最流行的银行兼容,也可能与大多数其他银行兼容。某些边缘情况(例如,Mehrfach-TAN或mTAN费用的SMS-Abbuchungskonto)目前不支持,并且可能永远不会支持。那些有专门的集成测试的银行已经进行了最彻底的测试。
如果您在使用特定银行时遇到任何问题,请检查GitHub上的公开问题,或者创建一个新的问题。