jrodella / php-pix
这是一个用于准备和生成巴西中央银行Pix代码的库。(这是一个:piggly/php-pix的分支)
Requires
- php: ^7.2 || ^8.0
- ext-gd: *
- chillerlan/php-qrcode: ^3.3 || ^4
Requires (Dev)
- php: ^7.3 || ^8.0
- fakerphp/faker: ^1.14
- phpunit/phpunit: ^9.5
Suggests
- piggly/php-api-client: Recomentado para criar requisições HTTP seguras e dinâmicas para as API Pix junto com os Payloads padrões.
README
Pix是巴西中央银行创建的最新电子支付方式。您可以在Pix的官方页面找到所有详细信息。点击此处了解更多关于其工作方式和我们的库如何工作的信息点击这里。
这个库主要被用于与Pix por Piggly的Woocommerce插件一起使用。但它也可以在任何需要创建payload、代码和Pix二维码的系统中使用。毕竟,它被创建出来是为了优化与Pix代码的工作流程。有了它,您可以
- 生成静态和动态的Pix代码;
- 为生成的Pix代码创建二维码;
- 导入Pix数据以读取Pix代码;
- 创建用于与Pix API交互的收款和退货payload;
- 使用与API的通信基础来组织您的代码;
- 生成与最新版本Pix兼容的代码。
如果您发现您的Pix密钥无效,请点击此处了解有关问题解决的更多信息。而且,不要错过我们的完整文档。
如果您喜欢这个库的功能并想支持这项工作,请随时为以下随机的Pix密钥进行任何捐赠:
aae2196f-5f93-46e4-89e6-73bf4138427b
❤。
2.0.0版本更新
除了对PHP 8的支持外,还做了许多更改,包括优化和扩展了EMV字段。此外,API请求被删除,并重新设计了API payload。我们建议阅读点击此处的更改文档并检查差异。
由于chillerlan/php-qrcode
库不能在composer.json
中更新,因此在PHP 8中需要使用--ignore-platform-reqs
标志。以下是如何使用它的示例
# composer install composer --ignore-platform-req=php install # composer update composer --ignore-platform-req=php update # e todos os demais comandos do composer
许多仍在使用PHP 7.2版本的用户,这不是停止支持的理想时机。从版本2.1.x开始,他们打算移除这种支持。
为了执行API请求,我们建议使用piggly/php-api-client库,该库是为了比1.x.x版本中使用的解决方案更灵活和更健壮而开发的。
查看2.x.x版本的主要更改
- EMV MPM标准已更新并重新设计,以支持Pix中可能使用的新字段;
- Pix密钥的验证和验证得到了增强;
- 读取Pix代码的结果是一个更灵活的EMVs对象;
- 移除了payload的修饰符,现在所有填写的数据都会自动处理并截断,完全遵守EMV标准。
- 已移除
BaseAPI
类,建议使用更灵活、更安全的库 piggly/php-api-client; - API 的有效载荷被重新设计,以实现更高的效率和灵活性。
安装
Composer
- 在终端中,在您的项目文件夹内,输入
composer require piggly/php-pix
; - 不要忘记在代码基础部分包含 composer 的自动加载文件
require_once('vendor/autoload.php');
。
手动安装
- 使用
git clone https://github.com/piggly-dev/php-pix.git
下载或克隆此仓库; - 然后,转到
/path/to/php-pix
文件夹,并执行composer install
命令以安装所有依赖项。 - 在您项目的底部添加 composer 的自动加载
require_once('/path/to/php-pix/vendor/autoload.php');
。
依赖项
此库有以下依赖项
- PHP GD 扩展 用于生成 QR 码;
- PHP +7.2 或 PHP +8.0。
如何使用?
建议您阅读完整的文档 点击这里
在 samples/payload.php 和 samples/reader.php 中,您可以找到实现示例。这个库非常简单易用,您只需要获取用户信息或以下数据来生成 Pix
必填项
$keyType = Parser::KEY_TYPE_RANDOM;
$keyValue = 'aae2196f-5f93-46e4-89e6-73bf4138427b';
$merchantName = 'STUDIO PIGGLY';
$merchantCity = 'Uberaba';
可选项
$amount = 109.90;
$tid = '034593-09';
$description = 'Pagamento 01';
$reusable = false;
然后创建 Payload
对象并使用 getPixCode()
或 getQRCode()
方法,具体取决于您的需求。您也可以创建 Reader
对象来提取有效 Pix 键的数据。
测试情况
此库生成的 Pix 代码,包括 QR Code 和 Pix Copia & Cola 功能,已经在以下银行应用中进行了测试
- 巴西银行;
- Inter 银行;
- BMG;
- Bradesco;
- C6;
- Itaú;
- Mercado Pago;
- Nubank;
- PagPank;
- Santander。
由于代码遵循 Pix 标准可能适用于所有银行。一些银行可能还在坚持使用既定的标准。因此,如果您遇到问题或困难,请不要犹豫,通过 Issue 或发送电子邮件至 dev@piggly.com.br。
在发送电子邮件或创建 issue 时,请确保提供以下信息
- 库版本:2.0.0;
- 发行银行:NuBank;
- 付款银行:Inter;
- 错误类型:QR Code 无效;
- 生成的 Pix 键:
00020101021126740014br.gov.bcb.pix0136aae2196f-5f93-46e4-89e6-73bf4138427b0212Pagamento 0152040000053039865406109.905802BR5913STUDIO PIGGLY6007Uberaba62130509034593-09630444C9
;
变更日志
查看 CHANGELOG 以获取有关代码中所有变更的信息。
代码测试
此库使用 PHPUnit。我们对应用程序的所有主要类进行了测试。
vendor/bin/phpunit
贡献
在发送您的贡献之前,请参阅 CONTRIBUTING 文件。
安全性
如果您发现任何与安全相关的问题,请通过电子邮件发送至 dev@piggly.com.br,而不是使用GitHub的问题追踪器。
致谢
支持项目
Piggly Studio 是一家位于巴西里约热内卢的本地代理商。如果您喜欢这个库的功能并想支持这项工作,请自由地为以下随机Pix键进行捐赠 aae2196f-5f93-46e4-89e6-73bf4138427b
❤。
许可证
MIT许可证(MIT)。有关更多信息,请参阅 LICENSE。