Skip to content

KHQR is a standardization of QR Code (EMV) that will promote wider use of mobile retail payments in Cambodia. By prescribing a KHQR (1 QR for all), a single KHQR Code can accept payments via different payment service operators (members of KHQR).

License

Notifications You must be signed in to change notification settings

mrrhak/khqr_sdk

Repository files navigation

🍃 KHQR SDK 🍃

Note

This KHQR SDK plugin is not officially release from NBC.

This is a simple interface layer that connects your Dart code directly to the original native platform-specific SDK, bridging Flutter and native functionality seamlessly.

KHQR SDK Document Reference


The standardization of KHQR code specifications will help promote wider use of mobile retail payments in Cambodia and provide consistent user experience for merchants and consumers. It can enable interoperability in the payment industry. A common QR code would facilitate payments among different schemes, e-wallets and banks and would encourage small merchants to adopt KHQR code as payment method. KHQR is created for retail or remittance in Cambodia and Cross-Border. It only requires a single QR for receiving transactions from any payment provider through Bakong including Bakong App.


khqr sdk preview

Supported Platforms

  • iOS
  • Android

Native KHQR SDK Version

  • iOS using BakongKHQR (v1.0.0.15)
  • Android using kh.gov.nbc.bakong_khqr:sdk-java:1.0.0.13

Features Supported

See the example app for detailed implementation information.

Features Android iOS
Generate Individual
Generate Merchant
Generate Deeplink
Verify
Decode
KHQR Card Widget

Platform specific setup

iOS

  1. Add source to Podfile (ios/Podfile)
source "https://sambo:[email protected]/khqr/khqr-ios-pod.git"
  1. Run pod install (make sure your terminal is in ios folder)
pod install

Android

  • No need to do anything it's working out of the box.

Usage

Create instance of KHQR SDK

import 'package:khqr_sdk/khqr_sdk.dart';

final _khqrSdk = KhqrSdk();

Generate KHQR (Individual)

final info = IndividualInfo(
  bakongAccountId: 'kimhak@dev',
  merchantName: 'Kimhak',
  accountInformation: '123456789',
);
final khqrData = await _khqrSdk.generateIndividual(info);

Generate KHQR (Merchant)

final info = MerchantInfo(
  bakongAccountId: 'kimhak@dev',
  acquiringBank: 'Dev Bank',
  merchantId: '123456',
  merchantName: 'Kimhak',
);
final khqrData = await _khqrSdk.generateMerchant(info);

Verify KHQR

const qrCode = '00020101021129270010kimhak@dev01091234567895204599953031165802KH5906Kimhak6010Phnom Penh9917001317324625358296304B59E';
final isValid = await _khqrSdk.verify(qrCode);

Decode KHQR

const qrCode = '00020101021129270010kimhak@dev01091234567895204599953031165802KH5906Kimhak6010Phnom Penh9917001317324625358296304B59E';
final khqrDecodeData = await _khqrSdk.decode(qrCode);

Generate KHQR Deeplink

const qrCode = '00020101021129270010kimhak@dev01091234567895204599953031165802KH5906Kimhak6010Phnom Penh9917001317324625358296304B59E';

final sourceInfo = SourceInfo(
  appName: 'Example App',
  appIconUrl: 'http://cdn.example.com/icons.logo.png',
  appDeepLinkCallBack: 'http://app.example.com/callback',
);

final deeplinkInfo = DeeplinkInfo(
  qr: qrCode,
  url: 'http://api.example.com/v1/generate_deeplink_by_qr',
  sourceInfo: sourceInfo,
);

final deeplinkData = await _khqrSdk.generateDeepLink(deeplinkInfo);

KHQR Card Widget

KhqrCardWidget(
  width: 300.0,
  receiverName: 'Kimhak',
  amount: 0,
  currency: KhqrCurrency.khr,
  qr: khqrContent,
),

See the example for runnable examples of various usages.

Bugs or Requests

If you encounter any problems feel free to open an issue. If you feel the library is missing a feature, please raise a ticket on GitHub and I'll look into it. Pull request are also welcome.

See Contributing.md.

Support

Don't forget to give it a like 👍 or a star ⭐

Activities

Alt

About

KHQR is a standardization of QR Code (EMV) that will promote wider use of mobile retail payments in Cambodia. By prescribing a KHQR (1 QR for all), a single KHQR Code can accept payments via different payment service operators (members of KHQR).

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published