Turnkey E-Commerce Client SaaS License, Anti-Theft Handshake & API Architecture (ক্লায়েন্ট ই-কমার্স লাইসেন্সিং ও অ্যান্টি-থেফট ব্লুপ্রিন্ট)

# Turnkey E-Commerce Client SaaS License, Anti-Theft Handshake & Remote API Architecture > **Pixahunt Central Licensing & Source Code Anti-Theft Protection Blueprint** > *Category:* SaaS & Client E-Commerce Websites | *Target Audience:* Pixahunt Administrators, Client Website Developers & Enterprise Clients --- ## 1. Executive Overview & Business Purpose (উদ্দেশ্য ও মূল প্রেক্ষাপট) Pixahunt বিভিন্ন ক্লায়েন্ট এবং মার্চেন্টদের জন্য রেডিমেড **Turnkey E-Commerce Websites** এবং গ্যাজেট শপ তৈরি করে দেয়। আমরা যেহেতু ক্লায়েন্টদের জন্য সম্পূর্ণ সোর্স কোডসহ ই-কমার্স ওয়েবসাইট বিল্ড করে দেই, তাই আমাদের বৌদ্ধিক সম্পত্তি ও সোর্স কোড সুরক্ষিত রাখা অত্যন্ত আবশ্যক। ### ⚠️ সোর্স কোড অ্যান্টি-থেফট পলিসি (Anti-Theft Protection): - **কোড চুরির ঝুঁকি প্রতিরোধ:** কোনো ক্লায়েন্ট যাতে পিক্সাহান্টের তৈরি করা ই-কমার্স সোর্স কোড ক্লোন করে অন্য কোনো কোম্পানির কাছে অননুমোদিতভাবে বিক্রি করতে না পারে অথবা সাবস্ক্রিপশন ফি পরিশোধ না করে সাইট চালু রাখতে না পারে। - **সেন্ট্রাল মাস্টার কন্ট্রোল:** প্রতিটি ক্লায়েন্ট ওয়েবসাইট আমাদের সেন্ট্রাল পিক্সাহান্ট সার্ভারের সাথে সার্বক্ষণিক রিমোট লাইসেন্স ভেরিফিকেশনে আবদ্ধ থাকবে। - **রিমোট ইনস্ট্যান্ট লকডাউন:** কোনো ক্লায়েন্টের সাবস্ক্রিপশন মেয়াদোত্তীর্ণ হলে অথবা বিল বকেয়া থাকলে অ্যাডমিন প্যানেল থেকে ১-ক্লিকে `Suspended` করার সাথে সাথে তাদের অ্যাডমিন প্যানেল ও প্রোডাক্ট সিঙ্ক এপিআই সম্পূর্ণ লক হয়ে যাবে। - **মোবাইল অ্যাপস থেকে সম্পূর্ণ আলাদা:** এই লাইসেন্সিং ব্যবস্থা শুধুমাত্র **ইউজার এবং ক্লায়েন্ট ই-কমার্স ওয়েবসাইটের** জন্য প্রযোজ্য। পিক্সাহান্টের নিজস্ব ইন্টারনাল মোবাইল অ্যাপসের (`/api/apps/v1/...`) সাথে এর কোনো সম্পর্ক নেই। --- ## 2. Central Admin Control Panel (`/admin/gadget-saas/api-keys`) পিক্সাহান্ট অ্যাডমিনিস্ট্রেটরগণ এই প্যানেল থেকে সকল ক্লায়েন্ট ওয়েবসাইটের লাইসেন্স ইস্যু ও তদারকি করেন। | ফিল্ডের নাম | বিবরণ | অনুমোদিত ব্যবহারকারী | | :--- | :--- | :--- | | `user_id` | নিবন্ধিত ইউজারের আইডি যাকে এই শপের ওনার হিসেবে বরাদ্দ দেওয়া হয়েছে | শুধুমাত্র অ্যাডমিন | | `shop_name` | ক্লায়েন্টের স্টোরের নাম (e.g. Dhaka Tech Zone) | অ্যাডমিন ও ইউজার | | `shop_address` | ক্লায়েন্টের শপের বাস্তব ঠিকানা (Physical Location) | অ্যাডমিন ও ইউজার | | `shop_phone` | কাস্টমার সাপোর্ট ফোন নম্বর | অ্যাডমিন ও ইউজার | | `shop_email` | সাপোর্ট ও বিলিং ইমেইল অ্যাড্রেস | অ্যাডমিন ও ইউজার | | `subscription_status` | `active`, `suspended`, `expired` | **শুধুমাত্র অ্যাডমিন (লকড)** | | `max_domains` | সর্বোচ্চ কয়টি ডোমেন অনুমোদিত (ডিফল্ট: ৫টি) | **শুধুমাত্র অ্যাডমিন (লকড)** | | `allowed_domains` | হোয়াইটলিস্টেড ডোমেনের তালিকা (JSON Array) | অ্যাডমিন ও ইউজার (সর্বোচ্চ ৫টি) | | `api_key` | অনন্য ক্রিপ্টোগ্রাফিক লাইসেন্স কি (`pk_gadget_...`) | **শুধুমাত্র অ্যাডমিন (লকড)** | | `heartbeat_at` | ক্লায়েন্ট ওয়েবসাইট থেকে সর্বশেষ পিং রিসিভ করার সময় | অটোমেটিক সিস্টেম | | `last_ip` | ক্লায়েন্ট ওয়েবসাইটের রিমোট সার্ভার আইপি | অটোমেটিক সিস্টেম | ### অ্যাডমিনের কাজের ধাপ: 1. নতুন ক্লায়েন্টকে ওয়েবসাইট হস্তান্তর করার পূর্বে অ্যাডমিন `/admin/gadget-saas/api-keys`-এ গিয়ে **"Issue API / License Key"** বাটনে ক্লিক করবেন। 2. ক্লায়েন্টের নিবন্ধিত ইউজার অ্যাকাউন্ট সিলেক্ট করবেন, শপের নাম ও কন্টাক্ট ইনফো বসাবেন। 3. প্রাথমিক অবস্থায় স্ট্যাটাস `Active` এবং ডোমেন লিমিট ৫ থাকবে। 4. তৈরি হওয়া `api_key` ক্লায়েন্ট ওয়েবসাইটের `.env` ফাইলে কনফিগার করে দেওয়া হবে। --- ## 3. Client User Dashboard (`/user/gadget-api`) যে ইউজারকে অ্যাডমিন লাইসেন্সের ওনার হিসেবে বরাদ্দ দিয়েছেন, তিনি লগইন করে তার ড্যাশবোর্ডে স্টোরের পূর্ণ বিবরণ দেখতে পাবেন: ### 🟢 ইউজারের যা করার অনুমতি আছে: - নিজের শপের নাম, ফোন নম্বর, ইমেইল এবং বাস্তব শোরুমের ঠিকানা এডিট করা। - তার স্টোরের জন্য সর্বোচ্চ ৫টি ডোমেন (যেমন: `clientstore.com`, `admin.clientstore.com`, `localhost`) হোয়াইটলিস্টে যুক্ত করা। - নিজের লাইসেন্স কি এবং পিক্সাহান্ট সেন্ট্রালের সাথে লাইভ কানেকশন স্ট্যাটাস (Heartbeat Ping) দেখা। ### 🔴 ইউজারের জন্য যা সম্পূর্ণ নিষিদ্ধ ও লকড: - ইউজার নিজে নিজে কোনো ফ্রি লাইসেন্স তৈরি করতে পারবে না। অ্যাডমিন বরাদ্দ না দেওয়া পর্যন্ত পোর্টাল ইনঅ্যাক্টিভ থাকবে। - ইউজার তার সাবস্ক্রিপশন স্ট্যাটাস (`Active`, `Suspended`, `Expired`) বা প্ল্যান টিয়ার পরিবর্তন করতে পারবে না। - ইউজার ৫টির বেশি ডোমেন রেজিস্টার করতে পারবে না। --- ## 4. Remote Anti-Theft Verification API (`POST /api/v1/saas/license/verify`) ক্লায়েন্ট ই-কমার্স ওয়েবসাইট প্রতি ১ ঘণ্টা পর পর ব্যাকগ্রাউন্ডে পিক্সাহান্ট সেন্ট্রাল গেটওয়েতে পিং পাঠিয়ে লাইসেন্স ভ্যালিডেশন নিশ্চিত করে। ### রিকোয়েস্ট ফরম্যাট: - **HTTP Method:** `POST` - **Endpoint:** `https://pixahunt.com/api/v1/saas/license/verify` - **Headers:** - `Content-Type: application/json` - `X-API-KEY: pk_gadget_your_license_key` - `X-CLIENT-DOMAIN: clientstore.com` ```json { "api_key": "pk_gadget_xxxxxxxxxxxxxxxxxxxx", "domain": "clientstore.com", "server_ip": "123.45.67.89" } ``` ### রেসপন্স সিনারিও ১: লাইসেন্স সক্রিয় (HTTP 200 OK) ```json { "valid": true, "status": "active", "locked": false, "shop": { "name": "Dhaka Tech Zone", "address": "Multiplan Center, Elephant Road, Dhaka", "phone": "+880 1712-345678", "email": "support@techzone.com" }, "subscription": { "plan_tier": "enterprise", "status": "active", "expires_at": null, "rate_limit_per_min": 120 }, "handshake": { "timestamp": 1791958556, "signature": "de47cd963cc95dbc69067bf...", "heartbeat_interval_seconds": 3600, "grace_period_hours": 24 } } ``` ### রেসপন্স সিনারিও ২: সাবস্ক্রিপশন স্থগিত / লকডাউন (HTTP 403 Forbidden) ```json { "valid": false, "status": "suspended", "locked": true, "message": "License subscription is currently suspended. Store admin panel and sync APIs are locked." } ``` ### রেসপন্স সিনারিও ৩: অননুমোদিত ডোমেন (HTTP 403 Forbidden) ```json { "valid": false, "status": "domain_unauthorized", "locked": true, "message": "Domain 'pirated-site.com' is not registered on your Pixahunt whitelist. Add it from your client dashboard.", "allowed_domains": ["clientstore.com", "admin.clientstore.com"] } ``` --- ## 5. Client Website Integration Blueprint (ক্লায়েন্ট সাইটে কোড সেটআপ) ক্লায়েন্ট ই-কমার্স প্রজেক্টে এই অ্যান্টি-থেফট আর্কিটেকচার সেটআপ করার রেডিমেড কোড নিচে দেওয়া হলো: ### ক. Laravel ক্লায়েন্ট প্রজেক্ট মিডলওয়্যার ফাইল লোকেশন: `app/Http/Middleware/EnforcePixahuntLicense.php` ```php getHost(); // ১ ঘণ্টার জন্য লোকাল ক্যাশ ভেরিফিকেশন (সার্ভার পারফরম্যান্স রক্ষার জন্য) $cacheKey = 'pixahunt_saas_status_' . md5($licenseKey); $licenseData = Cache::remember($cacheKey, 3600, function () use ($licenseKey, $domain) { try { $response = Http::timeout(5)->post('https://pixahunt.com/api/v1/saas/license/verify', [ 'api_key' => $licenseKey, 'domain' => $domain, ]); if ($response->successful()) { return $response->json(); } // যদি অ্যাডমিন সেন্ট্রাল থেকে সাসপেন্ড করে দেয় (HTTP 403) if ($response->status() === 403) { return [ 'valid' => false, 'locked' => true, 'reason' => $response->json('message') ?? 'Subscription suspended.' ]; } } catch (\Throwable $e) { // সাময়িক ইন্টারনেট বিভ্রাটের ক্ষেত্রে ২৪ ঘণ্টার গ্রেস পিরিয়ড ব্যাকআপ চলবে return Cache::get('pixahunt_last_known_license', [ 'valid' => true, 'locked' => false ]); } return ['valid' => false, 'locked' => true, 'reason' => 'Connection to Pixahunt failed.']; }); // যদি লাইসেন্স অবৈধ বা লকড থাকে, সাথে সাথে স্ক্রিন লক করে দিবে if (empty($licenseData['valid']) || !empty($licenseData['locked'])) { return response()->view('errors.subscription_locked', [ 'reason' => $licenseData['reason'] ?? 'This store subscription is currently suspended or unpaid.', 'shop' => $licenseData['shop'] ?? null ], 403); } // লাইভ ভ্যালিড স্ট্যাটাস ব্যাকআপ সেভ করা Cache::forever('pixahunt_last_known_license', $licenseData); return $next($request); } } ``` ### খ. ক্লায়েন্ট লকডাউন ভিউ টেমপ্লেট ফাইল লোকেশন: `resources/views/errors/subscription_locked.blade.php` ```html Store Subscription Suspended — Pixahunt
Remote SaaS Lockdown

Store Subscription Suspended

{{ $reason ?? 'This e-commerce installation has been remotely locked by Pixahunt Central due to pending subscription renewal.' }}

Store Name: {{ $shop['name'] ?? 'Registered Merchant' }}
License Provider: Pixahunt Technologies
Contact Pixahunt Support to Renew
``` --- ## 6. Client Communication Protocol (গ্রাহককে যেভাবে বুঝাবেন) যখন কোনো মার্চেন্ট বা উদ্যোক্তা আপনার থেকে ই-কমার্স ওয়েবসাইট কিনতে আসবেন, তাদের সিস্টেমে এই সুরক্ষা কীভাবে কার্যকর থাকে তা খুব প্রফেশনালভাবে বুঝিয়ে দিতে পারবেন: 1. **ক্লাউড কানেকশন ও অটো সিঙ্ক:** "আপনার স্টোরটি সরাসরি পিক্সাহান্টের সেন্ট্রাল প্রোডাক্ট ও সিকিউরিটি ক্লাউডের সাথে সংযুক্ত থাকে। এতে আপনার পণ্যের টেকনিক্যাল স্পেসিফিকেশন ও সিকিউরিটি আপডেট সবসময় অটোমেটিক হালনাগাদ থাকে।" 2. **ডোমেন সিকিউরিটি:** "আপনার সোর্স কোড কেউ চুরি করে অন্য কোনো সাইটে চালাতে পারবে না। আপনি আপনার ইউজার ড্যাশবোর্ড থেকে সর্বোচ্চ ৫টি অনুমোদিত ডোমেন (যেমন: লাইভ সাইট ও স্টেজিং সাইট) নিজেই কন্ট্রোল করতে পারবেন।" 3. **সাবস্ক্রিপশন ও ব্যাকআপ:** "নিয়মিত মাসিক/বাৎসরিক সাবস্ক্রিপশন অ্যাক্টিভ থাকলে আপনার স্টোর নির্বিঘ্নে চলবে। কোনো কারণে আপনার ইন্টারনেট সাময়িক ডাউন থাকলেও ২৪ ঘণ্টার গ্রেস পিরিয়ডের কারণে কোনো গ্রাহক সমস্যা অনুভব করবে না।"