smhg/sepa-qr-data

生成适用于 SEPA 付款的二维码数据

v2.0.1 2023-09-23 18:37 UTC

This package is auto-updated.

Last update: 2024-09-23 20:57:32 UTC


README

根据欧洲支付委员会的标准(http://www.europeanpaymentscouncil.eu/index.cfm/knowledge-bank/epc-documents/quick-response-code-guidelines-to-enable-data-capture-for-the-initiation-of-a-sepa-credit-transfer/epc069-12-quick-response-code-guidelines-to-enable-data-capture-for-the-initiation-of-a-sepa-credit-transfer1/)生成 SEPA 付款数据,用于二维码。

使用此数据生成的二维码可以显示在发票上,并由移动银行应用程序扫描。

从 smhg/sepa-qr 迁移? 请遵循以下步骤

安装

composer require smhg/sepa-qr-data

用法

use SepaQr\Data;
$paymentData = Data::create()
  ->setName('Name of the beneficiary')
  ->setIban('BE123456789123456789')
  ->setAmount(100); // The amount in Euro

之后,您可以选择您喜欢的二维码库,并使用这些数据作为输入。以下有2个示例。

使用 endroid/qr-code

安装

composer require endroid/qr-code

用法

use Endroid\QrCode\Builder\Builder;
use Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelMedium;
Builder::create()
    ->data($paymentData)
    ->errorCorrectionLevel(new ErrorCorrectionLevelMedium()) // required by EPC standard
    ->build()
    ->saveToFile('payment.png');

注意: endroid/qr-code 列出了更多渲染方式

使用 chillerlan/php-qrcode

安装

composer require chillerlan/php-qrcode

用法

use chillerlan\QRCode\QRCode;
use chillerlan\QRCode\QROptions;
$qrOptions = new QROptions([
    'eccLevel' => QRCode::ECC_M // required by EPC standard
]);

(new QRCode($qrOptions))->render($paymentData, 'payment.png');

注意: chillerlan/php-qrcode 列出了更多渲染方式

API

setName($name)

必需。 设置收款人名称。

setIban($iban)

必需。 设置收款人账户号码。仅允许 IBAN。

setAmount($amount)

设置信用转账金额。目前仅允许欧元金额。

setBic($bic)

设置收款人银行的 BIC。

setRemittanceReference($remittanceReference)

设置汇款信息(结构化)。可以使用债权人参考(ISO 11649)RF 债权人参考。

setRemittanceText($remittanceText)

设置汇款信息(非结构化)。

setPurpose($purpose)

设置信用转账的目的。

setInformation($information)

设置收款人至发起人信息。

setServiceTag($serviceTag = 'BCD')

设置服务标签。目前仅允许一个值:BCD。

setVersion($version = 2)

设置 SEPA QR 标准版本。在版本 1 中,BIC 是必需的。在版本 2 中,BIC 仅在 EEA 国家外是必需的。

setCharacterSet($characterSet = Data::UTF_8)

设置字符集。可用的常量有 UTF_8ISO8859_5ISO8859_1ISO8859_7ISO8859_2ISO8859_10ISO8859_4ISO8859_15。请记住在应用程序的周围部分(包括 endroid/qr-code)也使用/设置此字符集。

setIdentification($identification = 'SCT')

设置识别代码。目前仅允许一个值:SCT。

从 smhg/sepa-qr 迁移

此项目是 smhg/sepa-qr 的延续,解耦二维码渲染。不同的二维码渲染库提供不同的功能并支持不同的 PHP 版本。此项目现在生成适当的二维码数据,可用于您选择的二维码渲染库。

按照以下步骤进行迁移

1. 删除 smhg/sepa-qr

composer remove smhg/sepa-qr

2. 安装 smhg/sepa-qr-data 和 endroid/qr-code

composer require smhg/sepa-qr-data endroid/qr-code

3. 替换/添加使用声明

-use \SepaQr\SepaQr;
+use \SepaQr\Data;
+use \Endroid\QrCode\Builder\Builder;
+use \Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelMedium;

4. 根据需要调整二维码生成

$paymentData = Data::create();
// ->set...

Builder::create()
    ->errorCorrectionLevel(new ErrorCorrectionLevelMedium())
    ->data($paymentData)
    ->build()
    ->saveToFile('payment.png');