FLUTTER ECOSYSTEM

codeboxrcodehub/flutter-bkash

지불 게이트웨이 bKash(방글라데시)용 Flutter/Dart 패키지

flutter-bkash 프로젝트 이미지
Stars
22
Forks
16
최근 푸시(UTC)
2026. 9. 2.
프로젝트 상태
활성
Codeboxr CodeHub GitHub avatar
GITHUB Organization

Codeboxr CodeHub ↗

Open source contributions from codeboxr.com

Dhaka, Bangladesh공식 웹사이트 ↗
언어DartRubySwiftKotlinObjective-C

기술 주제

이 저장소가 배포한 패키지

사용 중인 의존성

의존성 목록 6 개

원본 README

아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.

README 펼치기 / 접기

https://github.com/codeboxrcodehub/flutter-bkash/blob/master/assets/bkash_favicon.png?raw=true

bKash(BD) Mobile Finance Payment Gateway Flutter Package

Pub License PRs Welcome Maintenance Open Source Love svg1

This is a Flutter package for bKash BD Payment Gateway. This package can be used in flutter project. We created this package while working for a project and thought to release for all so that it helps.

:warning: Please note that, you have to contact with bKash sales team for any kind of dev or production access keys or tokens. We don't provide any test account or access keys or don't contact us for such

Check the package in github and also available in flutter/dart package

How to use:

Depend on it, Run this command With Flutter:

$ flutter pub add flutter_bkash

This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get):

dependencies:
    flutter_bkash: ^1.0.1

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more. Import it, Now in your Dart code, you can use:

import 'package:flutter_bkash/flutter_bkash.dart';

Features

  • Pay using bKash without an agreement
  • Create a bKash agreement for future payments
  • Pay using bKash with an agreement
  • Refund a completed payment, fully or partially
  • Query the status of a refund

Usage

Official Link for API documentation and demo checkout

Initialize the FlutterBkash instance:

Sandbox

final flutterBkash = FlutterBkash();

Production

final flutterBkash = FlutterBkash(
	credentials: BkashCredentials(
    username: "app_username",
    password: "app_password",
    appKey: "app_key",
    appSecret: "app_secret",
    isSandbox: false,
  ),
);

Make sure to replace the provided credentials with your own bKash sandbox or production credentials depending on your development environment.

Pay without Agreement

To make a payment without an agreement, use the pay method:

Request

final result = await flutterBkash.pay(
      context: context, // BuildContext context
      amount: 100.0, // amount as double
      merchantInvoiceNumber: "invoice123",
);

Response

BkashPaymentResponse(
	trxId: AFI60BAC94, 
	payerReference:  , 
	paymentId: TR0011fd4uZMS1687062024354, 
	customerMsisdn: 01877722345, 
	merchantInvoiceNumber: tranId, 
	_executeTime: 2023-06-18T10:22:31:623 GMT+0600
)
Create Agreement

To create a new agreement, use the createAgreement method:

Request

final result = await flutterBkash.createAgreement(context: context);

Response

BkashAgreementResponse(
	payerReference:  , 
	paymentId: TR0000RCHQGmX1687063332607, 
	customerMsisdn: 01877722345, 
	agreementId: TokenizedMerchant02P1AIJ7G1687063381235, 
	_executeTime: 2023-06-18T10:43:01:235 GMT+0600
)
Pay with Agreement

To make a payment with an existing agreement, use the payWithAgreement method:

Request

final result = await flutterBkash.payWithAgreement(
  context: context, // BuildContext context
  amount: 100.0, // type as double
  agreementId: "agreement123",
  merchantInvoiceNumber: "invoice123",
);

Response

BkashPaymentResponse(
	trxId: AFI60BAC94, 
	payerReference:  , 
	paymentId: TR0011fd4uZMS1687062024354, 
	customerMsisdn: 01877722345, 
	merchantInvoiceNumber: tranId, 
	_executeTime: 2023-06-18T10:22:31:623 GMT+0600
)
Refund a Payment

To refund a completed payment (full or partial), use the refund method. paymentId and trxId come from the pay/payWithAgreement response you're refunding. sku and reason are documented by bKash as optional, but the API rejects the request without them — pass both:

Request

final result = await flutterBkash.refund(
  paymentId: "TR0011fd4uZMS1687062024354",
  trxId: "AFI60BAC94",
  refundAmount: 50.0, // amount as double
  sku: "order-1234",
  reason: "customer requested refund",
);

Response

BkashRefundResponse(
	originalTrxId: AFI60BAC94, 
	refundTrxId: AFI60BAC95, 
	refundTransactionStatus: Completed, 
	originalTrxAmount: 100, 
	refundAmount: 50, 
	currency: BDT, 
	sku: order-1234, 
	reason: customer requested refund, 
	_completedTime: 2023-06-18T10:45:12:623 GMT+0600
)
Check Refund Status

To look up the refund(s) issued against a payment, use the refundStatus method:

Request

final result = await flutterBkash.refundStatus(
  paymentId: "TR0011fd4uZMS1687062024354",
  trxId: "AFI60BAC94",
);

Response

BkashRefundStatusResponse(
	originalTrxId: AFI60BAC94, 
	originalTrxAmount: 100, 
	originalTrxCompletedTime: 2023-06-18T10:22:31:623 GMT+0600, 
	refundTransactions: [BkashRefundStatusItem(refundTrxId: AFI60BAC95, refundTransactionStatus: Completed, refundAmount: 50, _completedTime: 2023-06-18T10:45:12:623 GMT+0600)]
)
Error Handling

The methods mentioned above may throw a BkashFailure exception in case of an error. You can catch and handle the exception using a try-catch block:

try {
  // Make a payment or create an agreement
} on BkashFailure catch (e) {
  // Handle the error
  print(e.message);
}

e.message carries bKash's actual error text when the API returns one (e.g. a specific refund rejection reason), falling back to a generic message (e.g. "Bad Request") only when the response has no parseable error body.

Examples for see the /example folder. The demo app also saves every payment/agreement/refund locally (History screen) so you can copy an ID or chain follow-up calls (e.g. pay with a saved agreement, refund a saved payment), and ships a Sandbox Info page with bKash's test wallet numbers, OTP and PIN.

Here is the example code link

Example Demo

flutter_bkash example demo
Importance Notes

Contributing

Core Maintainer

Contributions to the flutter_bkash package are welcome. Please note the following guidelines before submitting your pull request.

  • Follow Effective Dart: Style coding standards.
  • Read bKash API documentations first.Please contact with bKash for their api documentation and sandbox access.

License

flutter_bkash package is licensed under the BSD 3-Clause License.

Copyright 2023 Codeboxr.com Team. We are not affiliated with bKash and don't give any guarantee.