adding
This commit is contained in:
+50
-3
@@ -10,13 +10,60 @@ from django.utils.translation import gettext_lazy as _
|
||||
|
||||
class BazaarSettings(models.Model):
|
||||
"""تنظیمات کافهبازار — عمداً از پنل ادمین ویرایش میشود (نه .env)، چون
|
||||
باید بدون ریدیپلوی قابلتغییر باشد. تکردیفی (singleton)."""
|
||||
باید بدون ریدیپلوی قابلتغییر باشد. تکردیفی (singleton).
|
||||
|
||||
access_token = models.CharField(max_length=255, blank=True, verbose_name=_("Access Token"))
|
||||
refresh_token = models.CharField(max_length=255, blank=True, verbose_name=_("Refresh Token"))
|
||||
دو روش احراز هویت با devapi کافهبازار پشتیبانی میشود:
|
||||
۱) روش جدید (ساده): توکن ثابت از پیشخان → «API پیشخان بازار» → «دریافت
|
||||
توکن جدید»، مستقیم در access_token جایگذاری میشود؛ چون access_token_
|
||||
expires_at خالی میماند، هیچوقت سعی در refresh نمیشود (این توکن API
|
||||
رفرش ندارد؛ اگر باطل شد باید دستی از پیشخان توکن تازه گرفت و همینجا
|
||||
جایگزین کرد).
|
||||
۲) روش قدیمی (OAuth با رفرش خودکار): client_id/client_secret را اینجا
|
||||
بگذار، از دکمهی «اتصال به کافهبازار» در همین صفحه استفاده کن؛ از آن
|
||||
به بعد access_token هر بار که نزدیک انقضا باشد، خودش با refresh_token
|
||||
تمدید میشود — بدون نیاز به مراجعهی دستی دوباره."""
|
||||
|
||||
access_token = models.CharField(
|
||||
max_length=255,
|
||||
blank=True,
|
||||
verbose_name=_("Access Token"),
|
||||
help_text=_(
|
||||
"یا توکن ثابت «روش جدید» پیشخان را مستقیم اینجا بچسبان، یا با دکمهی اتصال زیر "
|
||||
"بگذار خودش (روش قدیمی/OAuth) پر و بعدا خودکار تمدید شود."
|
||||
),
|
||||
)
|
||||
refresh_token = models.CharField(
|
||||
max_length=255, blank=True, verbose_name=_("Refresh Token"),
|
||||
help_text=_("فقط برای روش OAuth — با دکمهی اتصال خودش پر میشود، دستی لازم نیست."),
|
||||
)
|
||||
access_token_expires_at = models.DateTimeField(
|
||||
null=True,
|
||||
blank=True,
|
||||
verbose_name=_("انقضای Access Token (فقط OAuth)"),
|
||||
help_text=_(
|
||||
"اگر خالی باشد یعنی توکن ثابتِ روش جدید است و هیچوقت خودکار تمدید نمیشود. "
|
||||
"اگر پر باشد یعنی از OAuth آمده و پیش از انقضا خودش تمدید خواهد شد."
|
||||
),
|
||||
)
|
||||
client_id = models.CharField(
|
||||
max_length=255, blank=True, verbose_name=_("Client ID (روش قدیمی/OAuth)")
|
||||
)
|
||||
client_secret = models.CharField(
|
||||
max_length=255, blank=True, verbose_name=_("Client Secret (روش قدیمی/OAuth)")
|
||||
)
|
||||
package_name = models.CharField(
|
||||
max_length=150, blank=True, verbose_name=_("application id اپ (مثلا ir.example.app)")
|
||||
)
|
||||
dynamic_discount_secret = models.CharField(
|
||||
max_length=255,
|
||||
blank=True,
|
||||
verbose_name=_("کلید امضای تخفیف پویا"),
|
||||
help_text=_(
|
||||
"از پیشخان → برنامهات → پرداخت درونبرنامهای → تخفیف پویا. فقط سمت سرور استفاده "
|
||||
"میشود (apps.billing.providers.dynamic_discount) — هیچوقت نباید در اپ فلاتر ذخیره شود، "
|
||||
"وگرنه کلید افشا میشود و کافهبازار مسئولیتی نمیپذیرد."
|
||||
),
|
||||
)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Meta:
|
||||
|
||||
Reference in New Issue
Block a user