# توضیح Commerce API Token — کجا استفاده می‌شود؟

## نکته‌ی کلیدی: این token در پنل admin وارد نمی‌شود

پنل `admin/index.html` فقط با **Admin API Key** کار می‌کند (همانی که الان با آن وارد
شده‌اید). **Commerce API Token** یک چیز کاملاً جداست — مخصوص جایی است که
**مشتری خودش می‌خواهد لایسنس بخرد یا تمدید کند**، بدون این‌که شما دستی وارد شوید.

## این Token دقیقاً کجا استفاده می‌شود؟

فرض کنید سایتی طراحی کرده‌اید که مشتری در آن روی «خرید» کلیک می‌کند، پول را
با درگاه پرداخت (زرین‌پال، پی‌پال و...) پرداخت می‌کند. بعد از پرداخت موفق،
**همان سایت فروش** (نه پنل شما) باید به‌صورت خودکار به license-server وصل
شود و لایسنس بسازد. این token همان چیزی است که آن سایت فروش برای احراز
هویت خودش به license-server استفاده می‌کند.

```
مشتری در سایت فروش    سایت فروش شما                 license-server
     |                      |                              |
     |--- کلیک "خرید" ----->|                              |
     |                      |--- پرداخت با درگاه --------->|
     |                      |<-- پرداخت موفق ---------------|
     |                      |                              |
     |                      |--- POST /api/purchase.php -->|
     |                      |    Header: X-Api-Token       |
     |                      |    (همان Commerce Token)     |
     |                      |<-- license_key برگردانده -----|
     |<-- نمایش کلید لایسنس-|                              |
```

## مثال کد PHP برای سایت فروش شما

اگر سایت فروش هم PHP دارد (که احتمالاً همینطور است)، این کد را بعد از تایید
پرداخت موفق در آن سایت اجرا می‌کنید:

```php
<?php
$commerceToken = 'همان Commerce API Token که از setup.php گرفتید';

$payload = json_encode([
    'customer' => [
        'name'  => $_POST['customer_name'],
        'email' => $_POST['customer_email'],
        'phone' => $_POST['customer_phone'] ?? '',
    ],
    'product_slug'   => 'portal-builder',   // شناسه محصولی که ساختید
    'plan_id'        => 1,                   // آیدی پلنی که ساختید (از پنل ادمین ببینید)
    'payment_method' => 'zarinpal',
    'payment_ref'    => $transactionId,      // شماره تراکنش درگاه پرداخت
    'amount_paid'    => $amount,
]);

$ch = curl_init('https://s.mahdavifar.ir/license-server/api/purchase.php');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => $payload,
    CURLOPT_HTTPHEADER     => [
        'Content-Type: application/json',
        'X-Api-Token: ' . $commerceToken,
    ],
    CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['success']) {
    $licenseKey = $response['data']['license_key'];
    // حالا این کلید را به مشتری نمایش دهید یا برایش ایمیل کنید
    echo "لایسنس شما: " . $licenseKey;
} else {
    echo "خطا: " . $response['message'];
}
```

## خلاصه

| Token | کجا استفاده می‌شود | چه کاری می‌کند |
|---|---|---|
| **Admin API Key** | پنل `admin/index.html` (همینی که الان دارید استفاده می‌کنید) | صدور دستی، لغو، مدیریت کامل |
| **Commerce API Token** | کد پشت سایت فروش شما (که هنوز نساخته‌اید) | خرید/تمدید خودکار بعد از پرداخت |

## قدم بعدی شما

اگر هنوز سایت فروش با درگاه پرداخت متصل نساخته‌اید، فعلاً به این Token نیازی
ندارید — فقط آن را جایی امن نگه دارید. وقتی سایت فروش (یا صفحه‌ی خرید در
همان پرتال طراحی سایت) را ساختید، همان‌جا این کد بالا را پیاده می‌کنید.
