Skip to content

فروشگاه: پورتال مشتری ​

Nexora Shop به مشتری‌هایتان یک وب‌اپ در https://<shop>/app/ می‌دهد. این صفحه توضیح می‌دهد این وب‌اپ چیست، چطور به آن HTTPS بدهید، و سه راهی که مشتری بیرون از تلگرام وارد می‌شود.

یک اپ، دو جا ​

  • پورتال، در هر مرورگری. وقتی تلگرام مسدود است یا ربات از دست رفته، فروشگاه شما با آن به فروش ادامه می‌دهد. مشتری با کدی وارد می‌شود که به ایمیل یا شمارهٔ موبایل او فرستاده می‌شود یا ربات تأییدش می‌کند، و مثل ربات خرید، پرداخت و تمدید می‌کند و سرویس‌ها و مصرفش را می‌بیند. روی صفحهٔ اصلی گوشی نصب می‌شود.
  • مینی‌اپ، داخل تلگرام. وقتی آدرس عمومی فروشگاه https:// باشد، منوی ربات باز کردن فروشگاه را نشان می‌دهد و تلگرام خودش مشتری را وارد می‌کند. مشتری‌ای که از وب خرید کرده، یک بار ایمیل یا شماره‌اش را وصل می‌کند (با یک کد که ثابتش می‌کند) و بعد همان سرویس‌ها، کیف پول و سفارش‌ها را در هر دو می‌بیند.

مشتری چه کارهایی می‌تواند بکند ​

  • سرویس‌های من: لینک اشتراک با دکمهٔ کپی و QR، مصرف، تاریخ انقضا، تمدید، افزودن حجم، و تمدید خودکار از کیف پول.
  • خرید و پرداخت: با کارت و عکس، PDF یا شمارهٔ پیگیری رسید، یا از راه درگاه شما (فروشگاه: پرداخت‌ها).
  • کیف پول: موجودی و افزایش آن، کدهای هدیه، و لینک معرفی (فروشگاه: کد تخفیف و معرفی).
  • سرویس تست رایگان، وقتی آن را ارائه می‌دهید.

اپ به زبان‌هایی که روشن کرده‌اید حرف می‌زند، هر مشتری به زبان خودش، با یک انتخابگر در بالای صفحه. وقتی فروش سرویس تازه متوقف است، یا سفارشی چون پنل جا نداشت به کیف پول برگشته، همین را می‌گوید.

آدرس عمومی و HTTPS ​

نصب آدرس عمومی فروشگاه، روش گرفتن گواهی HTTPS فروشگاه، و توکن ربات را می‌پرسد. توکن می‌تواند بماند و در خود فروشگاه تنظیم شود. آدرس را بعداً در راه‌اندازی، روی همان پورت، می‌شود عوض کرد؛ نوع گواهی با اجرای دوبارهٔ نصب با جواب تازه عوض می‌شود.

با HTTPS روشن، فروشگاه آن را فقط روی پورت نصبش سرو می‌کند، بدون HTTP ساده در کنارش، و آدرس عمومی همان پورت را نام می‌برد (اگر پورتی نام نبرد، ۴۴۳). پنل هم از همین آدرس به فروشگاه می‌رسد.

httpsکی از آن استفاده کنید
panel (پیش‌فرض)فروشگاه گواهی‌ای را سرو می‌کند که هنگام نصب از گواهی‌های پنل انتخاب کرده‌اید. پنل آن را صادر و تمدید می‌کند؛ فروشگاه هر چند دقیقه آن را می‌گیرد و یک نسخه نگه می‌دارد. فروشگاه به پورت ۴۴۳ نیاز ندارد، پس می‌تواند با پنل روی یک سرور باشد: پورت جداگانه‌ای مثل ۸۴۴۳ به آن بدهید، و آدرس https://shop.example.com:8443 را.
acmeدامنهٔ آدرس عمومی به سرور فروشگاه اشاره می‌کند و پورت ۴۴۳ آن‌جا آزاد است. فروشگاه گواهی خودش را روی ۴۴۳ می‌گیرد و تمدید می‌کند، و هیچ چیزی روی ۸۰ گوش نمی‌دهد.
acme-httpهمان روی هر پورتی، برای سروری که ۴۴۳ آن گرفته است. مرجع صدور روی پورت ۸۰ بررسی می‌کند.
self-signedآدرسی با IP، مثل https://203.0.113.9:8443. مرورگرها یک بار هشدار می‌دهند؛ ترافیک رمزگذاری می‌شود. راه‌اندازی اثر انگشت را نشان می‌دهد تا با اثر انگشت مرورگر و با اثر انگشتی که پنل هنگام تأیید فروشگاه نشان داد مقایسه کنید.
offHTTP ساده روی همان پورت، برای reverse proxy خودتان.

آدرس خودامضا مینی‌اپ ندارد

تلگرام روی آدرس خودامضا هیچ مینی‌اپی باز نمی‌کند، پس ربات مینی‌اپی پیشنهاد نمی‌دهد. مشتری‌ها از ربات و از وب‌اپ در مرورگر استفاده می‌کنند. فروشگاه گواهی خودامضا را تقریباً سالی یک بار تمدید می‌کند؛ در پنل با گواهی روی ردیف فروشگاه به گواهی تازه اعتماد کنید.

ورود با ایمیل ​

سرور SMTP خودتان را در تنظیمات فروشگاه تعیین کنید: میزبان، پورت، نام کاربری، گذرواژه، نشانی فرستنده، و امنیت: starttls (پورت ۵۸۷)، tls (پورت ۴۶۵) یا none (فقط برای رله‌ای روی همان سرور).

کد شش رقمی است و ده دقیقه و پنج تلاش اعتبار دارد. هر نشانی در پانزده دقیقه سه کد می‌گیرد، و هر آدرس IP در ساعت ده کد.

ورود با پیامک ​

فروشگاه هیچ سرویس پیامکی را نام نمی‌برد. آن را با یک رلهٔ کوچک از خودتان، با URL آن زیر تنظیمات، به سرویس خودتان وصل کنید. اگر رمز مشترک را ندهید، فروشگاه خودش یکی می‌سازد. هر کد این‌طور فرستاده می‌شود:

http
POST <your relay URL>
X-Nexora-Timestamp: 1790000000
X-Nexora-Signature: <hex HMAC-SHA256 of "1790000000.<body>" under the secret>
Content-Type: application/json

{"to": "+15550100", "text": "Your shop sign-in code: 123456"}

وقتی پیام در راه است، با هر وضعیت 2xx جواب دهید. امضا همان امضای همهٔ درخواست‌هایی است که فروشگاه به سرویس‌های شما می‌فرستد (فروشگاه: پرداخت‌ها)؛ آن را در رله بررسی کنید. شماره‌ها به شکل بین‌المللی می‌رسند؛ شماره‌های ایرانی‌ای که به صورت 0912… وارد شده‌اند +98912… می‌شوند.

ورود با ربات ​

وقتی رباتی تنظیم شده باشد، پورتال ورود با ربات تلگرام را پیشنهاد می‌دهد. این گزینه ربات را با یک کد یک‌بارمصرف باز می‌کند؛ مشتری Start را می‌زند، و ربات از او می‌خواهد تأیید کند، با ذکر نشانی، دستگاه و زمان مرورگر. صفحه با تأیید خودش وارد می‌شود؛ رد کد را باطل می‌کند.

کد پنج دقیقه اعتبار دارد، و فقط همان مرورگری که آن را خواسته وارد می‌شود: کسی که لینک خودش را برای مشتری بفرستد چیزی به دست نمی‌آورد. این روش به در دسترس بودن تلگرام نیاز دارد؛ ایمیل و پیامک برای وقتی است که در دسترس نیست.

پشت reverse proxy ​

کدها، ورودها و بررسی پرداخت‌ها برای هر نشانی کاربر محدودیت نرخ دارند. وقتی فروشگاه پشت یک reverse proxy اجرا می‌شود که TLS را باز می‌کند، NEXORA_OPT_TRUSTED_PROXIES را در .env نصب روی نشانی‌ها یا بازه‌های پراکسی بگذارید، مثلاً 127.0.0.1, 10.0.0.0/8. آن وقت فروشگاه نشانی کاربر را از X-Forwarded-For پراکسی می‌خواند. اگر خالی بماند، که پیش‌فرض است، هیچ هدر فرستاده‌شده‌ای پذیرفته نمی‌شود.

متن و تصویرها با مجوز CC BY 4.0.