smhg / sepa-qr-data
生成适用于 SEPA 付款的二维码数据
Requires
- php: >=8.1
Requires (Dev)
- phpmd/phpmd: ^2.8
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^7||^9
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_8
、ISO8859_5
、ISO8859_1
、ISO8859_7
、ISO8859_2
、ISO8859_10
、ISO8859_4
或 ISO8859_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');