climba-commerce / php-pix
一个用于准备和生成巴西中央银行Pix代码的库。
Requires
- php: ^7.2 || ^8.0
- ext-gd: *
- chillerlan/php-qrcode: ^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官方页面找到所有详细信息。点击此处了解更多关于其工作原理和我们的库如何运作的信息点击这里。
这个库主要用于与 Woocommerce 插件 Pix por Piggly 一起使用。但是,它也可以在任何需要创建Pix有效载荷、代码和QRCodes的系统中使用。毕竟,它是为了优化与Pix代码的工作流程而创建的。有了它,您将能够
- 生成静态和动态的Pix代码;
- 为生成的Pix代码创建QR码;
- 通过导入Pix数据来读取Pix代码;
- 创建用于与Pix API交互的收款和退货有效载荷;
- 使用与API的通信基础来组织您的代码;
- 生成与最新版本Pix兼容的代码。
如果您发现Pix密钥无效,请点击此处阅读有关问题的解决方案。并且,不要错过我们的完整文档。
如果您喜欢这个库的功能并想支持这项工作,请随意为以下随机Pix密钥做出任何捐赠
aae2196f-5f93-46e4-89e6-73bf4138427b
❤。
2.0.0版本更新
除了支持 PHP 8 之外,许多事情都发生了变化,EMV字段也得到了优化和扩展。此外,对API的请求已被移除,API有效载荷已重新设计。我们建议阅读此处的更改文档并检查差异。
无法在 composer.json
中更新库 chillerlan/php-qrcode
,因此在使用 PHP 8 时需要使用 flag
--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 的
autoload
添加到项目基础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 = '支付 01';
$reusable = false;
然后创建 Payload
对象并使用 getPixCode()
或 getQRCode()
方法,具体取决于您的需求。您还可以创建 Reader
对象来提取有效 Pix 键的数据。
已进行的测试
此库生成的 Pix 代码,包括 QR Code 和 Pix Copia & Cola 功能,已在以下银行应用程序中进行了测试
- 巴西银行;
- Inter 银行;
- BMG;
- Bradesco;
- C6;
- 伊塔乌;
- 市场支付;
- Nubank;
- PagPank;
- 桑坦德。
由于代码遵循 Pix 标准,因此它可能在所有银行中运行。一些银行可能仍然难以使用指定的标准。因此,如果您遇到问题或困难,请毫不犹豫地打开一个 问题 或发送电子邮件至 dev@piggly.com.br。
在发送电子邮件或打开问题之前,请确保提供以下信息
- 库版本:2.0.0;
- 发行银行:NuBank;
- 付款银行:Inter;
- 错误类型:QR Code 无效;
- 生成的 Pix 键:
00020101021126740014br.gov.bcb.pix0136aae2196f-5f93-46e4-89e6-73bf4138427b0212支付 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。