v5: Username + দুই PIN / Recovery ও Heir Claim

সর্বশেষ setup আগে পড়ুন। v5 নির্দেশনা আগের OTP recovery নির্দেশনার পরিবর্তে প্রযোজ্য।

v5 সেটআপ নির্দেশনা TXT
SBUT PAYLogin / লগইন

নতুন KYC + OCR + R2 setup

বর্তমান database-এ SQL 009 দিন। Cloudflare Pages-এ MEDIA_BUCKET R2 binding ও server secrets দিন, তারপর নতুন ZIP deploy করুন।

SQL 009 TXT খুলুন

iPhone থেকে R2 ও OCR setup — বাংলা

OCR এই ডিভাইসে লেখা পড়বে; পরিচয় অনুমোদন করবে না। R2 যুক্ত না হলে ছবি জমা সফল দেখাবে না।

CONNECTION & SETUP

সংযোগ ও SQL

iPhone থেকে SQL কপি করুন। নিচে সেটআপের প্রয়োজনীয় ধাপ আছে।

আপনার Supabase

Project: arsdjkylupklayojckbi

সংযোগ পরীক্ষা বাটন চাপুন।
TXT ডাউনলোড
লোড হচ্ছে…

১. ওয়ালেট database

নতুন database-এ COMPLETE SQL একবার চালান। আগে 001 বা 002 থাকলে পূর্ণ UPDATE দিন; আগে 003 থাকলে 005/006 UPDATE দিন। পুরোনো 002 আর চালাবেন না; এতে নতুন permission বদলে যেতে পারে। COMPLETE-এর পরে পুরোনো 001/002/003 বা 005/006 আবার লাগবে না।

২. Phone OTP ও PIN

Authentication / Providers থেকে Phone ও SMS provider configure করুন। Password minimum 6 রাখার সঙ্গে login rate limit ও abuse protection configure করুন। OTP-এর পরে NID/front/back/selfie, identity form ও policy consent দিন। Account submission-এর পরে Login page-এ ফিরবে।

৩. Face ID / fingerprint

Authentication / Passkeys-এ Enable Passkey চালু করুন। Relying Party Display Name: SBUT PAY। চূড়ান্ত domain-এর সঙ্গে RP ID ও allowed origin মিলতে হবে। এই domain ব্যবহার করলে:

প্রথমে ফোন/PIN দিয়ে লগইন করে “Face ID / fingerprint চালু করুন” চাপুন। পরের বার passkey দিয়ে লগইন করা যাবে। ডিভাইস প্রয়োজন অনুযায়ী Face ID, fingerprint অথবা screen-lock চাইতে পারে। এই Supabase feature বর্তমানে experimental। প্রকল্পে সেটআপ না হলে UI সফল হয়েছে বলে দেখাবে না।

৪. Founder / Admin login

Supabase Authentication / Users থেকে tutul@sbut.com দিয়ে একটি confirmed email account তৈরি করুন। আপনার দেওয়া password সেখানেই সেট করুন। তারপর Founder setup SQL 004 চালান। Login ID: FOUNDER-TUTUL। Email/password শুধু Supabase যাচাই করবে; static password বা URL backdoor নেই।

Admin page: admin.html অথবা admintutul.html। Cloudflare-এ /admin.html/admintutul.html ঠিকানাও redirect rule-এ আছে। Founder অন্য ইউজারকে আলাদা Admin ID দিয়ে admin করতে পারবেন। শুধু Founder balance adjustment ও admin role নিয়ন্ত্রণ করতে পারবেন।

৫. টাকা ও merchant funding

যাচাইকৃত cash/bank deposit পাওয়া নিশ্চিত করে তার unique reference ও কারণসহ admin panel থেকে credit দিন। Merchant funding-এ প্রকাশিত tiered fee কাটবে। Transaction ও admin audit record মুছে ফেলা যায় না। “Remove” মানে account freeze বা merchant/admin অধিকার সরানো; আর্থিক ইতিহাস hard-delete নয়।

৬. Merchant আবেদন ও ইমেইল

পরিচয় যাচাইকৃত user-এর Apply to become a merchant থেকে আবেদন panel-এ জমা হবে। “Open application email” ইমেইল অ্যাপে tutul@sbut.com-এ আবেদন প্রস্তুত করবে; ব্যবহারকারী Send করবেন। Server-side email delivery provider যুক্ত হয়নি। Admin approval-এর পরে শুধু সেই user-এর merchant switch দেখা যাবে।

৭. PIN + ৫ সেকেন্ড confirmation

PIN যাচাইয়ের পরে server-bound challenge হয়। Hold button একটানা ৫ সেকেন্ড রাখলে commit হয়; ছেড়ে দিলে, স্ক্রল করলে বা পেজ ছাড়লে cancel। Server-ও minimum ৫ সেকেন্ড, expiry, session, PIN ও immutable amount/recipient যাচাই করে। Browser-এ আঙুল একটানা ছিল কি না সার্ভার স্বাধীনভাবে প্রমাণ করতে পারে না; UI-তে এই gesture enforce হয়।

৮. Session ও privacy

সেশন একই tab-এর sessionStorage-এ থাকে। App switch/blur-এ hold বাতিল হয়; account logout হয় না। ফিরে এলে server যাচাই হয়। Explicit logout, account freeze বা server revoke হলে access বন্ধ হয়। PIN/OTP/KYC debug log নেই। সর্বোচ্চ ১০টি transient emergency code/time থাকে।

যেগুলো এখনো বাহ্যিক সংযোগ ছাড়া চলবে না

আপনার target Supabase-এ admin access না থাকায় SQL install, founder account creation, live OTP/passkey ও দুই-account money transfer পরীক্ষা করা হয়নি। Recharge provider, OCR/liveness ও bank withdrawal এখনও যুক্ত নয়। Recharge-এ কোনো টাকা কাটা বা ভুয়া success হবে না। চালুর আগে operator identity, approval, settlement, privacy retention ও provider contracts সম্পন্ন করুন।

Cloudflare upload

SBUT_PAY_MASTER.zip সরাসরি Pages Direct Upload-এ দিন। ZIP root-এ index.html, assets ও admin pages আছে। পুরোনো deployment-এর সঙ্গে মেশাবেন না।

নতুন Operations ফিচার

Forgot PIN recovery, device/security alerts, server-side transaction limits, receipt download/share, dispute/refund review, merchant daily reconciliation ও in-app notifications যুক্ত হয়েছে।

Server functions deploy

Supabase Dashboard / Edge Functions-এ server folder-এর প্রতিটি index.ts দিয়ে সংশ্লিষ্ট নামের function তৈরি করুন: pin-recovery, identity-extract, merchant-email, push-delivery, recharge-dispatch। প্রতিটি handler নিজস্ব JWT বা worker-secret যাচাই করে। server/config.toml-এর verify_jwt সেটিং অনুসরণ করুন। শুধু কোড upload করলেই external service চালু হয় না।

প্রয়োজনীয় secret

APP_ORIGIN: আপনার চূড়ান্ত HTTPS origin। Recovery-তে Supabase-এর server-side service role environment লাগে; সেটি browser বা public_config-এ দেবেন না। Push-এর জন্য VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY, VAPID_SUBJECT, PUSH_WORKER_SECRET। Recharge-এর জন্য RECHARGE_API_URL, RECHARGE_API_KEY, RECHARGE_WORKER_SECRET। OCR-এর জন্য IDENTITY_OCR_URL, IDENTITY_OCR_KEY। Email-এর জন্য RESEND_API_KEY ও FROM_EMAIL।

Push ও recharge চালু করা

আগে worker ও provider পরীক্ষা করুন। তারপর private integrations table-এ push public key / recharge reserve user দিয়ে enabled করুন। Public config-এ secret key লিখবেন না। server/SCHEDULE_WORKERS_SQL.txt-এ Vault-ভিত্তিক schedule আছে। এটি install করা বা schedule চালু করা এই কাজের সময় হয়নি। iPhone-এর push সমর্থন থাকলে Home Screen-এ ইনস্টল করা ওয়েব অ্যাপ থেকে permission দিন। In-app notification-এর জন্য push provider লাগে না।

Recovery ও refund

Recovery-তে OTP পাঁচ মিনিটের মধ্যে হতে হবে এবং যাচাইকৃত NID/DOB মিলতে হবে। API update বিচ্ছিন্ন হলে একই নতুন PIN দিয়ে resume করুন। Refund হবে বিদ্যমান recipient funds থেকে; fee ফেরত নয়। Cash-in/cash-out কমিশন অনুপাতে ফেরত নেওয়া হবে। Provider timeout হলে recharge নিজে থেকে retry/refund হবে না; admin-কে reference মিলিয়ে সিদ্ধান্ত নিতে হবে।

Backup, restore ও security audit

operations folder-এ encrypted backup, isolated restore-drill script ও read-only audit SQL আছে। এগুলো আপনার live project-এ চালানো হয়নি। Storage-এর KYC ছবি, Edge secrets ও project settings আলাদাভাবে backup করতে হবে। লাইভ server concurrency, real OTP/biometric, provider settlement, legal/business authorisation ও privacy review এখনো বাইরের কাজ।