# مقدمه

> بازینس چه چیزهایی به بازی شما می‌دهد، اجزای آن چطور کنار هم کار می‌کنند و این ویکی چطور مرتب شده است.

## بازینس چیست
**بازینس** پلتفرم بازی **گیتا گیمز** است. وقتی بازی شما به آن وصل شود، بازیکنان این‌ها را می‌گیرند:

- **حساب بازینس:** با شماره موبایل وارد می‌شوند و همان حساب در همه‌ی بازی‌های بازینس کار می‌کند.
- **گیتا کوین:** واحد پول پلتفرم. بازیکن آن را در بازی‌ها به دست می‌آورد و برای جایزه‌های واقعی خرج می‌کند.
- **صفحه‌های بازینس داخل بازی شما:** ورود، پروفایل، فروشگاه جایزه‌ی «انتخاب جایزه» و صفحه‌ی پیشنهاد مخصوص بازی شما.
- **پرداخت بازینس:** خرید با پول واقعی از طریق صفحه‌ی پرداخت بازینس.

این‌ها دو یکپارچه‌سازی **جدا از هم** هستند. می‌توانید هر کدام را به‌تنهایی یا هر دو را با هم اضافه کنید:

| یکپارچه‌سازی | چیزی که بازیکن می‌گیرد | چه کسی با بازینس حرف می‌زند | چیزهایی که لازم دارید |
| --- | --- | --- | --- |
| **پلتفرم بازینس** | حساب، گیتا کوین، صفحه‌های بازینس | **سرور** شما API پلتفرم را صدا می‌زند؛ **کلاینت** شما صفحه‌ها را نشان می‌دهد و موجودی سکه را می‌خواند | شناسه‌ی کلاینت، کلید محرمانه، نام بسته‌ی پلتفرم |
| **پرداخت بازینس** | خرید با پول واقعی | **سرور** شما API پرداخت را صدا می‌زند؛ **کلاینت** شما صفحه‌ی پرداخت را باز می‌کند | نام بسته‌ی پرداخت، SKUهای ثبت‌شده در داشبورد بازینس |

## اجزا چطور کنار هم کار می‌کنند
```mermaid
flowchart LR
  subgraph Device["Player device"]
    G["Your game client"]
    S["Baziness sheet<br/>iframe → baziness.com"]
    P["Payment tab<br/>pay.baziness.com/buy"]
  end
  subgraph Backend["Your backend"]
    B["Game server<br/>(holds clientId + clientSecret)"]
  end
  K[("Baziness platform API")]
  Y[("Baziness Pay API")]
  G -- "/api/platform/*" --> B
  G -- "/api/shop/purchase/*" --> B
  B -- "client/auth · create-user · add-coin …" --> K
  B -- "get_payment · verify_payment · consume" --> Y
  G -- "user/get-coin (user token)" --> K
  G -- "opens" --> S
  S -- "postMessage: login · logout · close" --> G
  G -- "opens" --> P
```

کلاینت فقط در دو مورد مستقیم با بازینس حرف می‌زند: **صفحه‌های** بازینس را نشان می‌دهد، و موجودی سکه را با توکن خود بازیکن می‌خواند (`user/get-coin`). همه‌ی کارهای دیگر از **سرور شما** می‌گذرند، چون فقط سرور شما کلید محرمانه را دارد.

## پنج قانون طلایی
1. **کلید محرمانه هیچ‌وقت از سرور بیرون نمی‌رود.** مرورگر یا اپ فقط تنظیمات عمومی و توکن خود بازیکن را می‌گیرد.
2. **سرور تصمیم می‌گیرد و کلاینت فقط نمایش می‌دهد.** اتصال حساب، دادن سکه و خرید همیشه در سرور بررسی می‌شوند.
3. **هر لینک صفحه‌ی بازینس `packageName` و `sdkType=js` دارد.** بدون `sdkType=js` صفحه نمی‌تواند با بازی حرف بزند و حتی نمی‌تواند خودش را ببندد.
4. **بازی بدون بازینس هم کار می‌کند.** اگر پلتفرم خاموش یا در دسترس نبود، بخش‌های بازینس را پنهان کنید و ادامه دهید.
5. **هر پرداخت یک شناسه‌ی یکتا و تکرارپذیر دارد.** تلاش دوباره، دو بار زدن دکمه یا کرش سرور هیچ‌وقت نباید دو بار پاداش بدهد.

## محیط‌ها
| | توسعه (بازی‌های تستی) | اصلی |
| --- | --- | --- |
| API پلتفرم | `https://platform-dev.karizmastudios.org/api` | `https://platform.karizmastudio.com/api` |
| صفحه‌های بازینس | `https://platform-web-dev.karizmastudios.org` | `https://baziness.com` |
| پرداخت بازینس | `https://pay-dev.karizmastudios.org` | `https://pay.baziness.com` |
| ورود | **هر شماره موبایلی، کد `111111`** (پیامکی فرستاده نمی‌شود) | شماره‌ی واقعی و کد پیامکی |
| خرید تستی | «خرید آزمایشی» در صفحه‌ی پرداخت (بدون پرداخت واقعی) | پرداخت واقعی |

هر محیط **شناسه و کلید محرمانه‌ی خودش** را دارد.

## این ویکی چطور مرتب شده
| بخش | محتوا | کد دارد؟ |
| --- | --- | --- |
| **شروع کار** | همین صفحه و [یکپارچه‌سازی قدم‌به‌قدم](setup.md) | نه |
| **API** | همه‌ی endpointها به ترتیب: چه کار می‌کند، کِی صدایش بزنید، درخواست، پاسخ و قانون‌ها | فقط درخواست و پاسخ |
| **راهنماها** | جریان‌ها: ورود، گیتا کوین، صفحه‌ی جایزه، صفحه‌ی پیشنهاد آموزش، لینک‌ها | نه |
| **نمونه کد** | کد آماده‌ی سرور (TypeScript، C#، Python) و کلاینت (وب، React، Cocos Creator، Unity)، از جمله وب‌ویو | بله |
| **بازی نمونه** | یک بازی کامل و متن‌باز که همه‌ی این‌ها را دارد: [اجرا و دانلود](example.md) | کل پروژه |
| **مرجع** | چک‌لیست انتشار، رفع اشکال و همه‌ی endpointها در یک جدول | نه |

هر صفحه را با دکمه‌های زیر عنوانش به‌صورت **Markdown** یا **PDF** دانلود کنید. راهنمای کامل هم در هر دو قالب در نوار کناری هست.
