seem2810/php-fints

PHP库,用于fints和hbci协议

dev-master 2024-09-16 13:24 UTC

This package is auto-updated.

Last update: 2024-09-16 13:24:17 UTC


README

Build Status

实现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上的公开问题,或者创建一个新的问题。