ennemedia/php-fints

PHP 实现FinTS和HBCI协议的库

3.5.0 2024-07-01 14:52 UTC

This package is auto-updated.

Last update: 2024-09-06 18:11:59 UTC


README

Build Status

PHP 库,实现了以下 FinTS/HBCI 协议功能:

  • 获取账户
  • 获取余额
  • 获取交易
  • 执行直接借记
  • 执行转账
  • 注意,规范中第 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.phplogin.php。一旦您能够无问题登录,您就可以继续其他示例。

有特殊需求的银行

如果您使用此库开发在线银行应用程序,请注意以下异常:

兴业银行

当与 URL https://hbci-01.hypovereinsbank.de/bank/hbci 一起使用时,BLZ 71120078 将抛出“未知的信贷机构”异常。您必须使用 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(一些比其他要求更频繁)和允许的参数(并非所有银行都支持所有参数组合)方面的行为也各不相同。

这个库旨在与所有支持根据PSD2法规实施FinTS V3.0和基于PIN/TAN认证的银行兼容,包括大多数相关的德国银行。目前,它至少与最受欢迎的银行兼容,也可能与大多数其他银行兼容。一些边缘情况(例如,多TAN或mTAN费用使用的SMS自动扣账账户)可能不会也不会被支持。那些有专门集成测试的银行已经进行了最全面的测试。

如果您在使用特定银行时遇到任何问题,请检查GitHub上的开放问题或创建一个新的问题。