flutter_bkash: Flutter-এ bKash পেমেন্ট ইন্টিগ্রেশন সহজ করার গল্প
বাংলাদেশে Flutter দিয়ে অ্যাপ বানাতে গেলে প্রায় সবারই bKash পেমেন্ট লাগে। আমিও Codeboxr-এ কাজ করার সময় বারবার একই ইন্টিগ্রেশন করতে হচ্ছিল — টোকেন হ্যান্ডশেক, WebView ফ্লো, কলব্যাক হ্যান্ডলিং। প্রতিটি প্রজেক্টে নতুন করে।
তখন মাথায় এলো — এটা একবার ঠিকমতো করে প্যাকেজ বানিয়ে সবার জন্য ছেড়ে দিই।
কী সমস্যা সমাধান করে
bKash API-তে ডকুমেন্টেশন কম, sandbox ও production আলাদাভাবে কাজ করে, আর WebView রিডাইরেক্ট কিছু Android ডিভাইসে ঠিকমতো ধরা যায় না।
flutter_bkash এই সব সমস্যা লুকিয়ে রেখে ডেভেলপারকে দেয় একটাই simple API।
ব্যবহার
flutter pub add flutter_bkashপেমেন্ট করুন
final flutterBkash = FlutterBkash(
credentials: BkashCredentials(
username: "app_username",
password: "app_password",
appKey: "app_key",
appSecret: "app_secret",
isSandbox: false,
),
);
final result = await flutterBkash.pay(
context: context,
amount: 100.0,
merchantInvoiceNumber: "invoice123",
);Agreement তৈরি করুন
final result = await flutterBkash.createAgreement(context: context);
// result.agreementId সংরক্ষণ করুনAgreement দিয়ে পেমেন্ট
final result = await flutterBkash.payWithAgreement(
context: context,
amount: 100.0,
agreementId: "agreement123",
merchantInvoiceNumber: "invoice123",
);Error Handling
try {
final result = await flutterBkash.pay(...);
} on BkashFailure catch (e) {
print(e.message);
}যা শিখলাম
OEM WebView সমস্যা: কিছু Android ডিভাইসে ব্রাউজার লেয়ার bKash-এর success redirect গ্রাস করে ফেলে। সমাধান — JavaScript bridge দিয়ে DOM লেভেলে payment completion ধরা।
Sandbox vs Production: দুই পরিবেশে URL, error code, token expiry সব আলাদা। isSandbox flag দিয়ে পুরো configuration আলাদা করা হয়েছে।
লিংক
- pub.dev: pub.dev/packages/flutter_bkash
- GitHub: github.com/codeboxrcodehub/flutter-bkash
- লাইসেন্স: BSD 3-Clause
- Co-maintainer: ABDULLAH AL MASUM
bKash-এর sandbox বা production API key পেতে সরাসরি bKash sales team-এর সাথে যোগাযোগ করুন। আমরা কোনো test account বা key দিতে পারি না।