keenthekeen/php-promptpay-qr

PHP Library to generate QR Code payload for PromptPay

v1.1.0 2023-11-17 07:53 UTC

This package is auto-updated.

Last update: 2024-04-17 10:13:14 UTC


README

Latest Version on Packagist Packagist PHP Version GitHub Tests Action Status GitHub Code Style Action Status License: MIT

PHP Library to generate QR Code payload for PromptPay, a Thai QR Code Standard for Payment Transactions, using fluent interface

inspired by dtinth/promptpay-qr and pheerathach/promptpay

adapted from kittinan/php-promptpay-qr

Installation

You can install the package via composer:

composer require keenthekeen/php-promptpay-qr

Usage

use PromptPayQR\Builder;

// Generate PromptPay Payload
Builder::staticMerchantPresentedQR('0899999999')->build();
// 00020101021129370016A000000677010111011300668999999995802TH53037646304FE29

// Generate PromptPay Payload With Amount
Builder::staticMerchantPresentedQR('089-999-9999')->setAmount(420)->build();
// 00020101021229370016A000000677010111011300668999999995802TH53037645406420.006304CF9E

// Generate PromptPay Payload With Amount (one-time use)
Builder::dynamicQR()->creditTransfer()->phoneNumber('083-888-3333')->setAmount(420)->build();

// Generate PromptPay Bill Payment (Tag 30) Payload
Builder::dynamicQR()->billPayment()
  ->setBillerIdentifier('099400015804189', 'Ref1', 'Ref2')
  ->setAmount(1999.99)->build();

// Generate QR Code SVG string
$svgString = Builder::staticMerchantPresentedQR('1-2345-67890-12-3')->toSvgString();
// Laravel example: respond with header Content-Type: image/svg+xml
return response($svgString, 200)->header('Content-Type', 'image/svg+xml')->header('Cache-Control', 'no-store');

// Generate QR Code SVG file
Builder::staticMerchantPresentedQR('1-2345-67890-12-3')->toSvgFile($path);

License

The MIT License (MIT). Please see License File for more information.