۱. کلیدها را بگیرید
تیم پلتفرم بازینس این مقدارها را به شما میدهد، برای هر محیط یک دسته (توسعه و اصلی):
| مقدار | مثال | چه کسی استفاده میکند | محرمانه؟ |
|---|---|---|---|
| شناسهی کلاینت (client id) | 12 |
سرور شما، برای گرفتن توکن کلاینت | نه، ولی خصوصی نگهش دارید |
| کلید محرمانه (client secret) | •••••••• |
سرور شما، برای گرفتن توکن کلاینت | بله، فقط سرور |
| نام بستهی پلتفرم | com.karizmastudio.example |
لینک همهی صفحههای بازینس (packageName) |
نه |
| نام بازی | example |
صفحهی جایزه و صفحهی پیشنهاد (game_name) |
نه |
| نام بستهی پرداخت | com.karizmastudio.example |
همهی درخواستهای پرداخت (pname)؛ ممکن است با نام بستهی پلتفرم فرق کند |
نه |
| SKUها | example_pack |
محصولاتی که با پرداخت بازینس میفروشید | نه |
هشدار
کلید محرمانه هیچوقت نباید به مرورگر یا بیلد اپ برسد: نه در کد کلاینت، نه در متغیرهای
VITE_*یاNEXT_PUBLIC_*، نه در گیت. هر کسی که آن را داشته باشد میتواند به نام بازی شما بازیکن بسازد و گیتا کوین بدهد.
۲. دو نوع توکن را بشناسید
همهچیز در پلتفرم با یکی از این دو توکن کار میکند. جدا نگه داشتن این دو، کلید کل یکپارچهسازی است:
| توکن | چه کسی دارد | چطور گرفته میشود | برای چه |
|---|---|---|---|
| توکن کلاینت | فقط سرور شما | شناسه + کلید محرمانه ← client/auth |
همهی درخواستهای سرور به سرور: ساختن بازیکن، بررسی توکن، دادن سکه |
| توکن کاربر | کلاینت بازیکن (از سرور شما) | client/create-user یا client/get-user-token |
باز کردن صفحههای بازینس به نام همین بازیکن (linkedToken) و خواندن موجودی سکهاش |
۳. قدمها را دنبال کنید
| # | قدم | کجا | جزئیات |
|---|---|---|---|
| ۱ | سرور شما با شناسه و کلید محرمانه یک توکن کلاینت میگیرد | سرور | API پلتفرم ← قدم ۱ |
| ۲ | اولین باری که بازیکن میآید، سرور کاربر بازینس او را میسازد و شناسهاش را ذخیره میکند. دفعههای بعد توکن تازه میگیرد | سرور | قدمهای ۲ و ۳ |
| ۳ | کلاینت صفحههای بازینس (ورود، پروفایل، جایزه) را با توکن کاربر نشان میدهد و به پیامهایشان گوش میدهد | کلاینت | صفحههای بازینس |
| ۴ | وقتی بازیکن در صفحه وارد شد، سرور توکن را بررسی میکند و حساب را وصل میکند (یا به حساب دیگر بازیکن جابهجا میکند) | سرور | ورود، قدم ۴ |
| ۵ | کلاینت موجودی گیتا کوین را نشان میدهد و سرور برای برد و جایزه گیتا کوین میدهد | هر دو | گیتا کوین، قدمهای ۵ و ۶ |
| ۶ | دکمهی «انتخاب جایزه» صفحهی جایزه را باز میکند؛ آموزش میتواند صفحهی پیشنهاد بازی را باز کند | کلاینت | صفحهی جایزه، صفحهی پیشنهاد آموزش |
| ۷ | آیتمها را با پرداخت بازینس بفروشید | هر دو | پرداخت بازینس |
| ۸ | لینکهایی را که بازیکن میآورند با پارامترهای UTM برچسب بزنید | هر دو | لینکها و UTM |
کد آمادهی همهی قدمها در کد سرور و کد کلاینت است. بازی نمونه همه را کنار هم دارد.
۴. سرور را تنظیم کنید
بازی نمونه و نمونه کدها این تنظیمات را میخوانند. همین نامها را نگه دارید تا نمونهها بدون تغییر کار کنند:
| تنظیم | مثال | معنی |
|---|---|---|
BAZINESS_PLATFORM_ENABLED |
true |
کلید اصلی. تا وقتی false است بازی هیچ بخش بازینسی نشان نمیدهد |
BAZINESS_PLATFORM_USE_PRODUCTION |
false |
false = آدرسهای توسعه، true = آدرسهای اصلی |
BAZINESS_CLIENT_ID |
12 |
شناسهی کلاینت |
BAZINESS_CLIENT_SECRET |
•••• |
کلید محرمانه (محرمانه) |
BAZINESS_PLATFORM_PACKAGE_NAME |
com.karizmastudio.example |
packageName در لینک صفحهها |
BAZINESS_GAME_NAME |
example |
game_name در صفحهی جایزه و پیشنهاد |
BAZINESS_PAY_ENABLED |
true |
دکمههای خرید را روشن میکند |
BAZINESS_PAY_BASE_URL |
https://pay-dev.karizmastudios.org |
سرور پرداخت این محیط |
BAZINESS_PAY_PACKAGE_NAME |
com.karizmastudio.example |
pname در همهی درخواستهای پرداخت |
BAZINESS_SKU_PREFIX |
(خالی) | اختیاری: SKU = پیشوند + شناسهی محصول |
پلتفرم فقط وقتی روشن حساب میشود که BAZINESS_PLATFORM_ENABLED=true باشد و هم شناسه و هم کلید محرمانه تنظیم شده باشند. به این ترتیب سروری که نیمهکاره تنظیم شده، دقیقاً مثل وقتی رفتار میکند که بازینس اصلاً وجود ندارد.