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
Contact Pixahunt Support to Renew
```
---
## 6. Client Communication Protocol (গ্রাহককে যেভাবে বুঝাবেন)
যখন কোনো মার্চেন্ট বা উদ্যোক্তা আপনার থেকে ই-কমার্স ওয়েবসাইট কিনতে আসবেন, তাদের সিস্টেমে এই সুরক্ষা কীভাবে কার্যকর থাকে তা খুব প্রফেশনালভাবে বুঝিয়ে দিতে পারবেন:
1. **ক্লাউড কানেকশন ও অটো সিঙ্ক:** "আপনার স্টোরটি সরাসরি পিক্সাহান্টের সেন্ট্রাল প্রোডাক্ট ও সিকিউরিটি ক্লাউডের সাথে সংযুক্ত থাকে। এতে আপনার পণ্যের টেকনিক্যাল স্পেসিফিকেশন ও সিকিউরিটি আপডেট সবসময় অটোমেটিক হালনাগাদ থাকে।"
2. **ডোমেন সিকিউরিটি:** "আপনার সোর্স কোড কেউ চুরি করে অন্য কোনো সাইটে চালাতে পারবে না। আপনি আপনার ইউজার ড্যাশবোর্ড থেকে সর্বোচ্চ ৫টি অনুমোদিত ডোমেন (যেমন: লাইভ সাইট ও স্টেজিং সাইট) নিজেই কন্ট্রোল করতে পারবেন।"
3. **সাবস্ক্রিপশন ও ব্যাকআপ:** "নিয়মিত মাসিক/বাৎসরিক সাবস্ক্রিপশন অ্যাক্টিভ থাকলে আপনার স্টোর নির্বিঘ্নে চলবে। কোনো কারণে আপনার ইন্টারনেট সাময়িক ডাউন থাকলেও ২৪ ঘণ্টার গ্রেস পিরিয়ডের কারণে কোনো গ্রাহক সমস্যা অনুভব করবে না।"
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