PHP code example of konthaina / khqr-php
1. Go to this page and download the library: Download konthaina/khqr-php library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
konthaina / khqr-php example snippets
onthaina\Khqr\KHQRGenerator;
$khqr = new KHQRGenerator(KHQRGenerator::MERCHANT_TYPE_INDIVIDUAL);
$result = $khqr->setBakongAccountId('kon_thaina@cadi')
->setMerchantName('Konthaina Co., Ltd.')
->setCurrency('USD')
->setAmount(25.75)
->setExpirationDuration(120)
->setMerchantCity('Phnom Penh')
->setBillNumber('#12345')
->generate();
echo $result['qr'] . PHP_EOL;
echo "md5: {$result['md5']}\n";
echo "createdTimestamp: {$result['createdTimestamp']}\n";
echo "expirationTimestamp: {$result['expirationTimestamp']}\n";
echo "verify: " . (KHQRGenerator::verify($result['qr']) ? "OK" : "FAIL") . PHP_EOL;
[
'qr' => '000201...',
'timestamp' => '1700000000000',
'createdTimestamp' => '1700000000000',
'expirationTimestamp' => '1700000120000', // null for static mode
'type' => 'individual|merchant',
'md5' => '...'
]
$result = (new KHQRGenerator(KHQRGenerator::MERCHANT_TYPE_INDIVIDUAL))
->setStatic(true)
->setBakongAccountId('kon_thaina@cadi')
->setMerchantName('Konthaina Co., Ltd.')
->setCurrency('USD')
->setMerchantCity('Phnom Penh')
->generate();
$result = (new KHQRGenerator(KHQRGenerator::MERCHANT_TYPE_INDIVIDUAL))
->setBakongAccountId('kon_thaina@cadi')
->setMerchantName('Konthaina Co., Ltd.')
->setCurrency('USD')
->setAmount(25.75)
->setCreatedTimestamp('1755076232336')
->setExpirationTimestamp('1755076292336')
->generate();
$khqr = new KHQRGenerator(KHQRGenerator::MERCHANT_TYPE_INDIVIDUAL);
$result = $khqr->setBakongAccountId('john_smith@devb')
->setMerchantName('John Smith')
->setAccountInformation('85512233455')
->setAcquiringBank('Dev Bank')
->setCurrency('USD')
->setAmount(5.00)
->generate();
$khqr = new KHQRGenerator(KHQRGenerator::MERCHANT_TYPE_MERCHANT);
$result = $khqr->setBakongAccountId('merchant@bank')
->setMerchantId('123456')
->setMerchantName('ABC Store')
->setAcquiringBank('ABC Bank')
->setCurrency('KHR')
->setAmount(50000)
->generate();
use Konthaina\Khqr\KHQRGenerator;
$isValid = KHQRGenerator::verify($qrString);
use Konthaina\Khqr\BakongApiClient;
use Konthaina\Khqr\KHQRGenerator;
$client = new BakongApiClient('YOUR_ACCESS_TOKEN'); // uses default Bakong base URL
$response = $client->checkTransactionByMd5($result['md5']);
$response = $client->checkTransactionByQr($result['qr']);
$response = KHQRGenerator::checkTransactionByMd5WithToken($result['md5'], 'YOUR_ACCESS_TOKEN');
// Optional: custom base URL
$client = new BakongApiClient('https://api-bakong.nbc.gov.kh', 'YOUR_ACCESS_TOKEN');
use Konthaina\Khqr\BakongApiClient;
use Konthaina\Khqr\KHQRGenerator;
$response = BakongApiClient::renewToken('[email protected] ');
// Optional: custom base URL and timeout
$response = BakongApiClient::renewToken('[email protected] ', 'https://api-bakong.nbc.gov.kh', 30);
// Convenience wrapper
$response = KHQRGenerator::renewBakongToken('[email protected] ');
bash
composer json
{
"repositories": [
{
"type": "path",
"url": "../khqr-php"
}
],
"bash
composer dump-autoload