This plugin allows you to integrate Gkash Payment Gateway into your Flutter App.


Sample usage to start a payment:

import 'package:gkash_payment/gkash_webview.dart';
import 'package:gkash_payment/model/payment_callback.dart';
import 'package:gkash_payment/model/payment_request.dart';
import 'package:gkash_payment/model/payment_response.dart';

    requestPayment() {
        //Generate your Payment Request
        PaymentRequest request = PaymentRequest(
            version: '1.5.0',
            cid: "M102-U-xxx",
            currency: 'MYR',
            amount: amountInput,
            cartid: DateTime.now().millisecondsSinceEpoch.toString(),
            signatureKey: "yourSignatureKey",
            isProd: false, //if production environment then set to true
            callbackUrl: "https://YourCallbackUrl.com/callback", //set your callback URL (Optional)
            paymentCallback: this);
        //Navigate to GkashWebView
                builder: (_) {
                return GkashWebView(request);

Getting the Payment Result

Upon finishing of the WebView Activity, implement GkashPaymentCallback to your widget

class MyHomePage extends StatefulWidget {
  _MyHomePageState createState() => _MyHomePageState();

class _MyHomePageState extends State<MyHomePage>
    implements PaymentCallback {

  void getPaymentStatus(PaymentResponse response) {
    // handle payment response
    setState(() {
      _status = response.status;
      _cartId = response.cartid;
      _amount = response.amount;
      _currency = response.currency;
      _description = response.description;
      _paymentType = response.PaymentType;
      _poId = response.POID;
      _cid = response.cid;


Fos IOS, you need to add URL schemes to get your transaction status and pass your URL scheme to GkashPaymentSDK

Apps can declare any custom URL schemes they support. Use the URL Types section of the Info tab to specify the custom URL schemes that your app handles. Screenshot 2022-09-12 at 1 04 17 PM


Apache 2.0