PHP code example of sokeng / khqr-gateway
1. Go to this page and download the library: Download sokeng/khqr-gateway 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/ */
sokeng / khqr-gateway example snippets
use KHQR\BakongKHQR;
use KHQR\Helpers\KHQRData;
use KHQR\Models\IndividualInfo;
$individualInfo = new IndividualInfo(
bakongAccountID: 'jonhsmith@nbcq',
merchantName: 'Jonh Smith',
merchantCity: 'PHNOM PENH',
currency: KHQRData::CURRENCY_KHR,
amount: 500
);
var_dump(BakongKHQR::generateIndividual($individualInfo));
use KHQR\BakongKHQR;
use KHQR\Models\MerchantInfo;
$merchantInfo = new MerchantInfo(
bakongAccountID: 'jonhsmith@nbcq',
merchantName: 'Jonh Smith',
merchantCity: 'Siem Reap',
merchantID: '123456',
acquiringBank: 'Dev Bank',
mobileNumber: '85512345678',
);
var_dump(BakongKHQR::generateMerchant($merchantInfo));
$result = BakongKHQR::decode('00020101021229190015john_smith@devb52045999530311654065000.05802KH5910jonh smith6010Phnom Penh62360109#INV-20030313Coffee Klaing0702#299170013161302797275763049ACF');
var_dump($result);
$result = BakongKHQR::verify('00020101021229180014jonhsmith@nbcq520459995303116540750000.05802KH5910Jonh Smith6010Phnom Penh62150211855123456789917001316257134678276304A96B');
var_dump($result);
$sourceInfo = new SourceInfo(
appIconUrl: 'https://bakong.nbc.gov.kh/images/logo.svg',
appName: 'Bakong',
appDeepLinkCallback: 'https://bakong.nbc.gov.kh'
);
$result = BakongKHQR::generateDeepLink('00020101021229190015john_smith@devb5204599953038405405100.05802KH5910John Smith6010Phnom Penh6304BF30', $sourceInfo);
var_dump($result);
$result = BakongKHQR::checkBakongAccount('dave@devb');
var_dump($result);
$bakongKhqr = new BakongKHQR('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...');
$response = $bakongKhqr->checkTransactionByMD5('d60f3db96913029a2af979a1662c1e72');
$response = $bakongKhqr->checkTransactionByMD5List([
'0dbe08d3829a8b6b59844e51aa38a4e2',
'7b0e5c36486d7155eb3ee94997fe9bfb',
'e12b3ecc4c066405ce05cd8cacab884c',
]);
$response = $bakongKhqr->checkTransactionByFullHash('dcd53430d3b3005d9cda36f1fe8dedc3714ccf18f886cf5d090d36fee67ef956');
$response = $bakongKhqr->checkTransactionByFullHashList([
'f0ae142842181535e678900bc5be1c3bd48d567ced77410a169fb672792968c8',
'd3b42e35d618a42b7506a79564083e6e91d5383b63f8aa2cf2ca7e65d55ec858',
'9036688e95cb3d1b621a9a989ebe64629d8c118654cfbc47f4d4991d72fc3b44',
]);
$response = $bakongKhqr->checkTransactionByShortHash('8465d722', 1.0, 'USD');
$response = $bakongKhqr->checkTransactionByInstructionReference('00001234');
$response = $bakongKhqr->checkTransactionByExternalReference('DEV123456ZTH');
$result = BakongKHQR::renewToken('[email protected] ');
var_dump($result);
// ignore the SSL certificate
curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER,false);
shell
object(KHQR\Models\KHQRResponse)#15 (2) {
["status"]=>
array(3) {
["code"]=>
int(0)
["errorCode"]=>
NULL
["message"]=>
NULL
}
["data"]=>
array(2) {
["qr"]=>
string(119) "00020101021229180014jonhsmith@nbcq52045999530311654035005802KH5910Jonh Smith6010PHNOM PENH99170013173949577872263046894"
["md5"]=>
string(32) "b1c250304b8594e4c6b53dd44791b57a"
}
}
shell
object(KHQR\Models\KHQRResponse)#19 (2) {
["status"]=>
array(3) {
["code"]=>
int(0)
["errorCode"]=>
NULL
["message"]=>
NULL
}
["data"]=>
array(2) {
["qr"]=>
string(152) "00020101021130400014jonhsmith@nbcq01061234560208Dev Bank5204599953031165802KH5910Jonh Smith6009Siem Reap6215021185512345678991700131739495778722630433E1"
["md5"]=>
string(32) "c0d2d74726f8e887f37a585cda3b3a79"
}
}
shell
object(KHQR\Models\KHQRResponse)#16 (2) {
["status"]=>
array(3) {
["code"]=>
int(0)
["errorCode"]=>
NULL
["message"]=>
NULL
}
["data"]=>
array(1) {
["bakongAccountExists"]=>
bool(false)
}
}
shell
array(4) {
["responseCode"]=>
int(0)
["responseMessage"]=>
string(21) "Token has been issued"
["errorCode"]=>
NULL
["data"]=>
array(1) {
["token"]=>
string(172) "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
}