bKash vs Nagad API Setup Comparison
বিকাশ (bKash) এবং নগদ (Nagad) দুটিই বাংলাদেশের শীর্ষস্থানীয় ডিজিটাল পেমেন্ট গেটওয়ে। তবে ডেভলপারদের জন্য এদের অথেনটিকেশন, ক্রিপ্টোগ্রাফি, এপিআই কল ফ্লো এবং রিকোয়েস্ট স্ট্রাকচার সম্পূর্ণ ভিন্ন। নিচে সম্পূর্ণ পার্থক্য বিস্তারিত তুলে ধরা হলো।
- অথেনটিকেশন: App Key, App Secret, Username ও Password দিয়ে JWT Bearer Token জেনারেট করা হয়।
- এনক্রিপশন: কোনো পাবলিক/প্রাইভেট কি বা RSA এনক্রিপশন লাগে না। প্লেইন JSON পাঠানো যায়।
- কল ফ্লো: Grant Token → Create Payment → User PIN → Execute Payment।
- অথেনটিকেশন: কোনো Token নেই। প্রতিটি রিকোয়েস্টে RSA Encryption ও Digital Signature দিতে হয়।
- এনক্রিপশন: 2048-bit RSA PKCS1Padding এনক্রিপশন এবং SHA1withRSA সাইনিং বাধ্যতামূলক।
- কল ফ্লো: Initialize Order → Place Order → User PIN → Callback → Verify API।
Side-by-Side Master Comparison Table
ডেভেলপারদের জন্য গুরুত্বপূর্ণ ৩টি পরামর্শ
১. bKash-এ যা সহজ, Nagad-এ তা কেন আলাদা?
bKash তাদের সিকিউরিটি নিয়ন্ত্রণ করে OAuth 2.0 টোকেনের মাধ্যমে। অন্যদিকে Nagad (Kona Software Lab) ব্যাংকিং লেভেলের End-to-End Payload Encryption অনুসরণ করে। তাই নগদ গেটওয়েতে আপনার ডাটা ট্রাফিকের মাঝপথে কেউ দেখতে বা ম্যানিপুলেট করতে পারে না।
২. bKash Execute vs Nagad Verification
bKash-এ ইউজার পেমেন্ট পেজে পিন দেওয়ার পর যদি ব্রাউজার বন্ধ করে দেয়, তবে টাকা কাটে না কারণ Execute API কল হয়নি। কিন্তু Nagad-এ ইউজার পিন দিলেই একাউন্ট থেকে টাকা কেটে নেওয়া হয় এবং সাথে সাথে merchantCallbackURL-এ রিডাইরেক্ট করা হয়। তাই আপনাকে অবশ্যই আপনার সার্ভার থেকে GET /verify/payment কল করে নিশ্চিত করতে হবে।
৩. একসাথে bKash ও Nagad ইন্টিগ্রেশনের বেস্ট প্র্যাকটিস
আপনার ই-কমার্স বা অ্যাপে পেমেন্ট সার্ভিস ডিজাইন করার সময় একটি Payment Gateway Interface তৈরি করুন। কন্ট্রোলারে শুধু createPayment() এবং verifyPayment() মেথড কল করবেন; আর ক্রিপ্টো ও টোকেনের জটিলতা থাকবে স্ব স্ব সার্ভিস ক্লাসের ভেতরে।