SMS Forwarder App & Auto Verify
পার্সোনাল bKash / Nagad / Rocket অ্যাকাউন্টে পেমেন্ট নিলে কোনো merchant API বা IPN পাওয়া যায় না। তাই NaafiPay একটি ছোট Android অ্যাপ ব্যবহার করে: যে সিমে পেমেন্টের SMS আসে, সেই ফোনে অ্যাপটি বসানো থাকে; অ্যাপ শুধু পেমেন্ট-সংক্রান্ত SMS আপনার NaafiPay অ্যাকাউন্টে পাঠায়। এরপর সার্ভার নিজেই অর্ডারের সাথে মিলিয়ে পেমেন্ট verify করে — কাস্টমারকে Transaction ID লিখতে হয় না।
দুইটি আলাদা অ্যাপ আছে
- SMS Forwarder (প্রধান দরকার) — সোর্স কোড রিপোজিটরির
android-app/ফোল্ডারে। শুধু SMS পড়ে ও ফরওয়ার্ড করে; কোনো ওয়েবসাইট দেখায় না। - Dashboard app — শুধু মার্চেন্ট ড্যাশবোর্ড মোবাইল অ্যাপ আকারে। কনফিগ ফাইল
capacitor.dashboard.config.ts। এটি লাইভ সাইটকেই লোড করে, তাই ওয়েবসাইট আপডেট করলে অ্যাপও সাথে সাথে আপডেট হয়ে যায় — নতুন APK বানানোর দরকার নেই। ভেতরে “View site” দিয়ে পুরো সাইটও দেখা যায়।
Tipপুরো সাইটের অ্যাপও আছে
একই বিল্ড ওয়ার্কফ্লোতে
variant বাছাই করা যায়: full (পুরো সাইট) অথবা dashboard (শুধু ড্যাশবোর্ড)। পরে যখন দরকার, শুধু variant বদলে বিল্ড দিলেই হবে।GitHub থেকে APK বানানো — ধাপে ধাপে
কোনো ল্যাপটপ, Android Studio বা ফোনের দরকার নেই। GitHub নিজেই ক্লাউডে বিল্ড করে দেবে।
- প্রজেক্ট GitHub-এ নিন। Lovable এডিটরের চ্যাট ইনপুটে + → GitHub → Connect project → GitHub-এ authorize → Create repository। এতে পুরো কোড আপনার GitHub-এ চলে আসবে।
- রিপোজিটরি খুলুন। github.com-এ লগইন করে আপনার নতুন রিপোজিটরিতে যান।
- উপরের মেনু থেকে “Actions” ট্যাবে চাপ দিন। প্রথমবার হলে “I understand my workflows, go ahead and enable them” বোতামে চাপ দিন।
- বাম পাশের লিস্টে ওয়ার্কফ্লো বেছে নিন:
- Build SMS Forwarder APK — SMS অ্যাপের জন্য (আপনার মূল দরকার)।
- Build Android APK — ড্যাশবোর্ড বা পুরো সাইটের অ্যাপের জন্য।
- ডানদিকে “Run workflow” বোতামে চাপ দিন। ড্যাশবোর্ড অ্যাপের ক্ষেত্রে ড্রপডাউনে
dashboardবাfullবেছে নিন, তারপর সবুজ “Run workflow”। - ৮–১২ মিনিট অপেক্ষা করুন। লিস্টে নতুন একটি রান দেখাবে — হলুদ মানে চলছে, সবুজ টিক মানে হয়ে গেছে।
- রানটিতে ঢুকে একদম নিচে “Artifacts” সেকশনে
naafipay-sms-forwarder-apk(বাnaafipay-dashboard-apk) ফাইলে চাপ দিন — একটি ZIP ডাউনলোড হবে। ZIP খুললে ভেতরে.apkফাইল। - ফোনে ইনস্টল করুন। APK ফাইলটি ফোনে পাঠিয়ে ওপেন করুন। Android “Install unknown apps” অনুমতি চাইলে দিন (Settings → Apps → আপনার ব্রাউজার/ফাইল ম্যানেজার → Allow)।
WarningPlay Store-এ দিতে চাইলে
Play Store-এর জন্য signed AAB লাগে, যেটা আপনার নিজের keystore দিয়ে একবার বানাতে হবে। নিরাপত্তার কারণে keystore আপনার হাতেই থাকা উচিত।
ফোন পেয়ার করা
- ড্যাশবোর্ডে Devices পেজে যান → Add device → নাম দিন।
- একটি টোকেন দেখাবে (
pgsms_…) — কপি করুন। এটি একবারই দেখা যায়। - ফোনে অ্যাপ খুলুন → SMS পড়ার অনুমতি দিন → টোকেন পেস্ট করুন → Pair।
- Devices পেজে ডিভাইসটি “online” দেখাবে। এবার একটি টেস্ট পেমেন্ট করে দেখুন।
অ্যাপ যেই ঠিকানায় SMS পাঠায়:
Ingest endpoint
1POST https://naafipay.com/api/public/v1/sms/ingest2Authorization: Bearer pgsms_xxxxxxxx3Content-Type: application/json4 5{ "sender": "bKash", "message": "You have received Tk 1500.07 ...", "received_at": "2026-09-20T05:20:00Z" }Transaction ID ছাড়া ভেরিফিকেশন কীভাবে কাজ করে
সার্ভার এই ক্রমে মিলানোর চেষ্টা করে — আগেরটা না মিললে পরেরটা:
- ইউনিক পয়সা-ট্যাগ (প্রধান): প্রতিটি চেকআউটে অ্যামাউন্টের সাথে আলাদা পয়সা যোগ হয় — ১৫০০ → ১৫০০.০৭। তাই একই দিনে ১৫০০ টাকার একশো অর্ডার এলেও প্রতিটি আলাদা করে চেনা যায়।
- সেন্ডার নাম্বার + অ্যামাউন্ট।
- কাস্টমারের “আমি পেমেন্ট করেছি” + অ্যামাউন্ট।
- শুধু অ্যামাউন্ট — যদি ওই অ্যামাউন্টে একটিই পেন্ডিং অর্ডার থাকে।
সব মিল/অমিলের কারণ Auto Verify পেজের Diagnostics টেবিলে বাংলায় লেখা থাকে, আর না-মেলা SMS সেখান থেকেই এক চাপে অর্ডারের সাথে মিলিয়ে দেওয়া যায়।
চালু / বন্ধ
- মার্চেন্ট: ড্যাশবোর্ড → Auto Verify → টগল অন/অফ, উইন্ডো ও পয়সা-ট্যাগ সেটিং।
- প্ল্যাটফর্ম অ্যাডমিন: একই পেজের উপরে গ্লোবাল টগল — পুরো প্ল্যাটফর্মে বন্ধ করা যায়।
সমস্যা হলে কী দেখবেন
- SMS আসছে না — Devices পেজে “last seen” দেখুন; ফোনে অ্যাপের ব্যাটারি অপটিমাইজেশন বন্ধ রাখুন।
- অ্যামাউন্ট পড়া যায়নি — Diagnostics-এ “SMS থেকে টাকার অ্যামাউন্ট পড়া যায়নি”; SMS Data পেজে মূল টেক্সট দেখে আমাদের জানান।
- একই অ্যামাউন্টে একাধিক অর্ডার — ইউনিক পয়সা-ট্যাগ চালু রাখুন।
- উইন্ডো শেষ — ম্যাচিং উইন্ডো বাড়িয়ে দিন (ডিফল্ট ৪৫ মিনিট)।