پرش به مطلب اصلی

اشتراک در OrcaRail: برداشت خودکار و چندزنجیره‌ای

· خواندن 6 دقیقه
OrcaRail
Crypto payment rails for web2 apps

۲۵ مارس ۲۰۲۶ — OrcaRail از اشتراک‌های دوره‌ای با همان مدل API‌محور پرداخت‌های یک‌باره پشتیبانی می‌کند: شما اشتراک می‌سازید، ما دوره‌های صورت‌حساب را پیگیری می‌کنیم و پرداخت‌کنندگان هر دوره را تکمیل می‌کنند؛ یا با باز کردن لینک پرداخت یا با برداشت خودکار، که در آن پس از یک تأیید یک‌باره روی زنجیره به ما اجازه می‌دهند هر دوره استیبل‌کوین برداشت کنیم.

چرا اشتراک در OrcaRail​

اشتراک‌ها برای SaaS، عضویت‌ها، قراردادهای ماهانه و هر محصولی است که در بازه ثابت (روز، هفته، ماه، سال) صورت‌حساب می‌شود؛ با امکان دوره آزمایشی، سقف تعداد دوره و قواعد لغو. از همان احراز هویت پرداخت بقیه پلتفرم استفاده می‌کنید و می‌توانید با وب‌هوک‌های اشتراک به رویدادهای چرخه عمر واکنش نشان دهید.

  • send_payment_link (پیش‌فرض): در هر دوره صورت‌حساب، پرداخت‌کننده یک لینک پرداخت دریافت می‌کند (ایمیل و/یا جریان میزبانی‌شده). با باز کردن لینک پرداخت می‌کند؛ روشی آشنا برای پرداخت کریپتو که به‌راحتی با مسیرهای Relay و انتخاب کیف پول ترکیب می‌شود.
  • auto_charge: پرداخت‌کننده از قبل به کیف پول داغ (hot wallet) اورکاریل اجازه می‌دهد مبلغ هر دوره را در هر تمدید برداشت کند. پس از راه‌اندازی، تا وقتی موجودی و مجوز معتبر باشد، پرداخت‌کننده لازم نیست برای هر تمدید روی لینک جدیدی کلیک کند.

نحوه دریافت را با POST /api/v1/subscriptions بسازید و تنظیم کنید؛ برای فهرست، ویرایش، توقف و لغو از مدیریت اشتراک‌ها استفاده کنید. فیلدهای کامل درخواست و نمونه‌ها در همین راهنماها آمده است.

برداشت خودکار: چطور انجامش می‌دهیم​

  1. فروشنده اشتراکی با collection_method: "auto_charge" و فیلدهای معمول amount، interval، token_id، network_id و اطلاعات تماس پرداخت‌کننده می‌سازد.
  2. پرداخت‌کننده صفحه اشتراک یا پرداخت دوره اول را باز می‌کند. دامنه کل تأیید را می‌بیند (مثلاً مجموع پرداخت‌های آینده‌ای که از او می‌خواهید پوشش دهد) و یک مجوز روی زنجیره امضا می‌کند:
    • روی زنجیره‌های EVM، این یک approve(spender, amount) استاندارد ERC-20 است که کیف پول داغ ما spender آن است.
    • روی سولانا، گام مشابه واگذاری (delegation) توکن SPL دست‌کم به اندازه مبلغ یک دوره به کیف پول داغ سولانای ما است.
  3. پرداخت‌کننده اندپوینت عمومی POST /api/v1/subscriptions/:id/approve-auto-charge را با هش تراکنش allowance (یا delegation)، payer_wallet_address، payer_network_id و payer_token_id فراخوانی می‌کند. کلید API فروشنده لازم نیست؛ پرداخت‌کننده با امضای تراکنش روی زنجیره قصد خود را ثابت کرده است.
  4. OrcaRail روی زنجیره بررسی می‌کند که allowance یا delegation برای کیف پول داغ مورد انتظار دست‌کم یک دوره صورت‌حساب را پوشش می‌دهد و سپس برداشت خودکار را تأییدشده علامت می‌زند. پیش از هر برداشت می‌توانیم مجوز را دوباره بررسی کنیم تا مشکلات موقت RPC با لغو allowance اشتباه گرفته نشود.
  5. در هر دوره صورت‌حساب، فرایند صورت‌حساب برداشت را انجام می‌دهد (در EVM جریانی شبیه transferFrom از پرداخت‌کننده به تسویه؛ در سولانا از موجودی واگذارشده استفاده می‌شود). در صورت موفقیت دوره جلو می‌رود؛ در صورت شکست مکرر (مثلاً موجودی ناکافی یا لغو مجوز) اشتراک ممکن است به past_due برود و به پرداخت‌کننده اطلاع داده شود. می‌توانید به وب‌هوک‌هایی مثل subscription.payment_link.payment_failed یا subscription.past_due گوش دهید؛ توضیحات در برداشت خودکار و وب‌هوک‌ها آمده است.

لغو مجوز و روش جایگزین: اگر پرداخت‌کننده مجوز را روی زنجیره لغو کند، برداشت‌های بعدی ناموفق می‌شوند. او همچنین می‌تواند پس از لغو، POST .../revoke-auto-charge را فراخوانی کند تا وضعیت را ثبت کنیم و روش دریافت را به send_payment_link تغییر دهیم؛ همراه با ایمیل راهنما برای مدیریت اشتراک و پرداخت دوباره از طریق لینک. جزئیات در برداشت خودکار و مدیریت اشتراک‌ها آمده است.

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

چندزنجیره‌ای: جایگاهش در اشتراک‌ها​

  • مبنای فروشنده: هر اشتراک با یک network_id و token_id ساخته می‌شود که نحوه قیمت‌گذاری و تسویه آن را در API تعیین می‌کند؛ شبکه و دارایی «اصلی» آن پلن.
  • اطلاعات پرداخت‌کننده در برداشت خودکار: برداشت خودکار payer_network_id و payer_token_id را ذخیره می‌کند؛ یعنی شبکه و توکنی که پرداخت‌کننده واقعاً allowance یا delegation را روی آن تنظیم کرده است. وقتی پرداخت‌کننده از زنجیره یا دارایی پشتیبانی‌شده دیگری پرداخت کند، این مقادیر می‌توانند با فیلدهای اصلی اشتراک فرق داشته باشند؛ هماهنگ با نحوه‌ای که پیش‌فاکتور و صفحه پرداخت مسیرهای سمت پرداخت‌کننده را تعیین می‌کنند.
  • پوشش هم‌راستا با Relay: شبکه‌ها و ارزهای پشتیبانی‌شده با Relay هم‌راستا می‌مانند؛ وقتی Relay زنجیره‌ها و توکن‌ها را گسترش دهد، فهرست ما هم دنبالش می‌آید. این مدل را در شبکه‌ها و ارزهای پشتیبانی‌شده: با قدرت Relay خلاصه کرده‌ایم.
  • مقصد وجوه: فروشندگان همچنان آدرس‌های برداشت برای هر نوع زنجیره تنظیم می‌کنند (و در صورت پشتیبانی می‌توانند برای هر پرداخت جایگزین کنند). برای تصویر کامل برداشت چندزنجیره‌ای و چند آدرس برای هر زنجیره، OrcaRail چندزنجیره‌ای است: برداشت‌ها و هم‌راستایی با Relay را ببینید.

جمع‌بندی​

موضوعرفتار OrcaRail
دریافت وجهsend_payment_link در هر دوره، یا auto_charge با تأیید روی زنجیره
برداشت خودکارapprove در ERC-20 روی EVM یا delegate در SPL روی سولانا ← API عمومی تأیید ← بررسی روی زنجیره ← برداشت در هر دوره، با past_due و وب‌هوک در صورت شکست
لغو مجوزلغو روی زنجیره + revoke-auto-charge اختیاری؛ امکان بازگشت به لینک پرداخت
چندزنجیره‌ایnetwork_id / token_id اشتراک؛ تأیید پرداخت‌کننده payer_network_id / payer_token_id را ذخیره می‌کند؛ شبکه‌های هم‌راستا با Relay؛ برداشت برای هر نوع زنجیره

اشتراک در OrcaRail منابع REST اشتراک را با مجوز غیرامانی پرداخت‌کننده برای برداشت خودکار و تسویه چندزنجیره‌ای ترکیب می‌کند؛ بدون اینکه از تجربه پرداخت میزبانی‌شده و APIهایی که برای پرداخت‌های یک‌باره استفاده می‌کنید دست بکشید.


اپ OrcaRail · مستندات · Relay