phumin/promptparse

一站式 PHP 库,用于 PromptPay & EMVCo 二维码

1.0.1 2024-04-23 15:25 UTC

This package is auto-updated.

Last update: 2024-09-19 09:42:58 UTC


README

"一站式 PHP 库,用于 PromptPay & EMVCo 二维码"

无依赖。只需安装即可享受!

这是 maythiwat/promptparse 的 PHP 版本

特性

  • 解析 — 将 PromptPay & EMVCo 二维码数据字符串解析为对象
  • 生成 — 从预制的模板(例如:PromptPay AnyID,PromptPay 账单支付,TrueMoney 等)生成二维码数据
  • 操作 — 对解析的二维码数据中的任何值(例如:转账金额,账户号码)进行编码,并将其重新编码回二维码数据
  • 验证 — 已知二维码格式的校验和数据结构(例如:小票验证 API Mini QR)

用法

解析数据并从标签中获取值

use phumin\PromptParse\Parser;

// Example data
$ppqr = Parser::parse("000201010211...");

// Get Value of Tag ID '00'
$ppqr->getTagValue("00") // Returns '01'

构建二维码数据并附加 CRC 标签

use phumin\PromptParse\Library\TLV;

// Example data
$data = [
  TLV::tag("00", "01"),
  TLV::tag("01", "11"),
  ...
];

// Set CRC Tag ID '63'
TLV::withCrcTag(TLV::encode($data), '63'); // Returns '000201010211...'

生成 PromptPay 账单支付二维码

use phumin\PromptParse\Generate;

$payload = Generate::billPayment("1xxxxxxxxxxxx", "300.0", "INV12345");

// TODO: Create QR Code from payload

验证并从小票验证 QR 中提取数据

use phumin\PromptParse\Validate;

$data = Validate::slipVerify("00550006000001...");

list($sendingBank, $transRef) = $data;
// or
$sendingBank = $data[0];
$transRef = $data[1];

// TODO: Inquiry transaction from Bank Open API

将 BOT 条形码转换为 PromptPay QR 标签 30(账单支付)

use phumin\PromptParse\Parser;

$botBarcode = Validate::parseBarcode("|310109999999901\r...");

$payload = $botBarcode->toQrTag30();

// TODO: Create QR Code from payload

参考

许可

本项目采用 MIT 许可协议(见 LICENSE.md