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

پرداخت دوره‌ای با ارز دیجیتال: اشتراک کریپتو در ۲۰۲۶ چطور کار می‌کند

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

پرداخت دوره‌ای با ارز دیجیتال به مشتری اجازه می‌دهد حق اشتراک را هر هفته، ماه یا سال با USDC، تتر (USDT) یا توکن دیگری بپردازد. مشکل اینجاست: در کریپتو «کارت ذخیره‌شده» وجود ندارد. کیف پول هرگز کلیدهایش را به فروشنده نمی‌دهد، پس نمی‌توانید ماه بعد همین‌طور دوباره از آن برداشت کنید.

این راهنما سه روش دریافت حق اشتراک کریپتو، هزینه هر کدام برای شما و مشتری، و راه‌اندازی آن‌ها با OrcaRail را توضیح می‌دهد.

چرا پرداخت دوره‌ای با ارز دیجیتال سخت است​

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

پس اشتراک کریپتو یکی از این دو را لازم دارد:

  • مشتری در هر دوره یک پرداخت امضا کند، یا
  • مشتری یک بار مجوزی امضا کند که به یک آدرس مشخص اجازه می‌دهد بعداً مبلغ محدودی برداشت کند.

همه محصولات پرداخت دوره‌ای کریپتو نسخه‌ای از یکی از این دو هستند.

سه روش دریافت حق اشتراک با ارز دیجیتال​

روشچطور کار می‌کندزحمت مشتریروی کدام شبکه‌ها
لینک پرداخت برای هر دورههر دوره یک فاکتور یا لینک پرداخت جدید می‌فرستید و مشتری آن را می‌پردازدیک پرداخت در هر دورههمه زنجیره‌ها، از جمله بیت‌کوین
برداشت با allowance (پرداخت خودکار)مشتری یک بار allowance سقف‌دار تأیید می‌کند و شما هر دوره برداشت می‌کنیدیک تأیید، و دیگر هیچEVM (ERC-20) و سولانا (واگذاری SPL)
پیش‌پرداخت / اسکرومشتری مبلغ چند دوره را از قبل در یک قرارداد یا موجودی واریز می‌کندیک واریز بزرگبسته به محصول

لینک پرداخت ساده‌ترین روش است و همه‌جا کار می‌کند، اما مشتری‌ها فراموش می‌کنند و ریزش بیشتر می‌شود. برداشت با allowance شبیه اشتراک با کارت است: مشتری یک بار تأیید می‌کند و طبق برنامه از او کسر می‌شود. اسکرو پول مشتری را قفل می‌کند و بیشتر آدم‌ها آن را دوست ندارند. دلیل انتخاب برداشت با allowance را در چرا اشتراک allowance-pull توضیح داده‌ایم.

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

روی زنجیره‌های EVM، توکن‌های ERC-20 مثل USDC تابع approve(spender, amount) دارند. مشتری برای یک آدرس (spender) سقفی کلی تأیید می‌کند، مثلاً ۱۲۰ USDC برای ۱۲ برداشت ماهانه. هر ماه spender تابع transferFrom را برای ۱۰ USDC صدا می‌زند. روی سولانا همین ایده با واگذاری (delegation) توکن SPL انجام می‌شود.

چه چیزی آن را برای مشتری امن می‌کند:

  • سقف روی زنجیره است. spender هرگز نمی‌تواند بیشتر از مبلغ تأییدشده برداشت کند.
  • مشتری هر وقت بخواهد می‌تواند لغو کند؛ با approve(spender, 0) روی EVM یا لغو واگذاری روی سولانا. کیف پول‌ها و ابزارهای revoke این تأییدها را نشان می‌دهند.
  • کلید خصوصی به اشتراک گذاشته نمی‌شود. کنترل کامل کیف پول دست مشتری می‌ماند.

معنی‌اش برای شما: اگر در تاریخ صورتحساب موجودی کیف پول کافی نباشد، برداشت ناموفق می‌شود. سیستم صورتحساب شما باید این را مدیریت کند (پایین‌تر).

پرداخت دوره‌ای ارز دیجیتال با OrcaRail​

اشتراک‌های OrcaRail از هر دو روش اصلی پشتیبانی می‌کنند. برای هر اشتراک یکی را با collection_method انتخاب می‌کنید:

  • send_payment_link (پیش‌فرض): در هر دوره، OrcaRail یک لینک پرداخت برای آن دوره می‌سازد و می‌تواند آن را برای پرداخت‌کننده ایمیل کند. روی همه شبکه‌های پشتیبانی‌شده کار می‌کند.
  • auto_charge: پرداخت‌کننده یک بار تأیید می‌کند (allowance ERC-20 روی EVM، واگذاری SPL روی سولانا) و OrcaRail مبلغ هر دوره را برداشت می‌کند. پرداخت خودکار روی بیت‌کوین کار نمی‌کند.

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

امکانات دیگری که از یک سیستم صورتحساب انتظار دارید:

  • دوره‌ها: روز، هفته، ماه یا سال، با interval_count و total_cycles اختیاری.
  • دوره آزمایشی: trial_period_days یا trial_end، به‌علاوه webhook subscription.trial_will_end حدود ۳ روز پیش از پایان دوره آزمایشی (دوره آزمایشی).
  • وضعیت‌ها: trialing، active، past_due، paused، canceled، completed.
  • Webhook برای هر مرحله، از جمله subscription.payment_link.paid (دوره پرداخت شد، با لینک یا پرداخت خودکار) و subscription.payment_link.payment_failed (برداشت خودکار ناموفق بود) (Webhookهای اشتراک).
  • SDK: Node.js، PHP و Laravel Cashier (SDKهای اشتراک).

OrcaRail همچنین در حال انتقال spender پرداخت خودکار از کیف پول داغ OrcaRail به یک قرارداد عمومی روی زنجیره (EVM) و یک برنامه (سولانا) است. روند پرداخت‌کننده تغییری نمی‌کند: یک بار تأیید، هر زمان لغو. نمای کلی non-custodial را ببینید.

ساخت اشتراک کریپتو​

یک پلن ماهانه ۱۰ دلاری، پرداخت با استیبل کوین، با ۱۴ روز دوره آزمایشی:

POST /api/v1/subscriptions
{
"description": "Pro Plan",
"amount": "10.00",
"currency": "usd",
"token_id": "<USDC token id>",
"network_id": "<Base network id>",
"interval": "month",
"trial_period_days": 14,
"payer_email": "[email protected]"
}

اشتراک با وضعیت trialing شروع می‌شود. شناسه توکن و شبکه را از GET /payments/networks و GET /payments/networks/:id/tokens بگیرید. مراحل کامل: ساخت اشتراک.

سپس webhookها را در بک‌اند پردازش کنید:

  • subscription.payment_link.paid: دسترسی این دوره را بدهید یا تمدید کنید.
  • subscription.payment_link.payment_failed و subscription.past_due: به مشتری خبر دهید و دسترسی را برای مدت کوتاهی نگه دارید یا پلن را پایین بیاورید.
  • subscription.trial_will_end: به مشتری یادآوری کنید پرداخت خودکار را تأیید کند یا اولین لینک را بپردازد.
  • subscription.canceled و subscription.completed: دسترسی را در زمان درست قطع کنید.

همه این‌ها را پیش از راه‌اندازی در یک سازمان sandbox رایگان با USDC آزمایشی از فاست‌های تست‌نت بسازید و تست کنید.

چه می‌فروشید…استفاده کنید
SaaS، عضویت، پلن‌های API (ماهانه)auto_charge، با لینک پرداخت به‌عنوان جایگزین
پلن سالانه یا فاکتورهای مبلغ بالاsend_payment_link: یک پرداخت آگاهانه در هر دوره
مشتری‌هایی که با BTC پرداخت می‌کنندsend_payment_link (پرداخت خودکار روی بیت‌کوین نیست)
مشتری‌هایی که نمی‌خواهند تأیید بدهندsend_payment_link

بسیاری از تیم‌ها هر دو را ارائه می‌دهند و انتخاب را در صفحه میزبانی‌شده به مشتری می‌سپارند.

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

  1. سقفی متناسب با پلن تأیید بگیرید. مبلغ × تعداد دوره بخواهید (مثلاً ۱۲ ماه)، نه allowance نامحدود. عدد روشن اعتماد بیشتری می‌سازد.
  2. شبکه ارزان انتخاب کنید. Base، Arbitrum، Optimism، Polygon و سولانا کارمزد هر برداشت را پایین نگه می‌دارند.
  3. پیش از تاریخ صورتحساب یادآوری کنید. از subscription.trial_will_end و یادآوری خودتان پیش از هر دوره استفاده کنید تا مشتری کیف پولش را شارژ کند.
  4. برنامه را نشان دهید. در صفحه اشتراک، مبلغ، دوره، تاریخ اولین برداشت و روش لغو را نشان دهید.
  5. جایگزین داشته باشید. وقتی برداشت ناموفق شد، لینک پرداخت همان دوره را بفرستید تا مشتری بتواند پرداخت کند.

پرسش‌های متداول​

می‌شود با ارز دیجیتال پرداخت دوره‌ای راه انداخت؟​

بله. یا مشتری در هر دوره یک لینک پرداخت جدید می‌پردازد، یا یک بار allowance سقف‌دار تأیید می‌کند و فروشنده هر دوره برداشت می‌کند. OrcaRail از هر دو پشتیبانی می‌کند.

پرداخت خودکار برای مشتری امن است؟​

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

کدام توکن‌ها و شبکه‌ها از پرداخت خودکار کریپتو پشتیبانی می‌کنند؟​

توکن‌های استاندارد allowance ERC-20 روی زنجیره‌های EVM (USDC، تتر و غیره) و توکن‌های SPL روی سولانا. بیت‌کوین allowance توکن ندارد، پس اشتراک‌های بیت‌کوینی با لینک پرداخت انجام می‌شوند.

اگر کیف پول مشتری در تاریخ صورتحساب خالی باشد چه می‌شود؟​

برداشت ناموفق می‌شود، subscription.payment_link.payment_failed دریافت می‌کنید و اشتراک ممکن است به past_due برود. مشتری می‌تواند آن دوره را با لینک پرداخت بپردازد یا کیف پولش را شارژ کند.

اشتراک کریپتو با OrcaRail چقدر هزینه دارد؟​

کارمزد نسخه میزبانی‌شده پس از ۱۰۰۰ تراکنش رایگان اول، ۰٫۵٪ برای هر تراکنش تکمیل‌شده است و نسخه خودمیزبان کارمزدی از OrcaRail ندارد. قیمت‌ها را ببینید.


اشتراک‌ها · مستندات اشتراک · شروع در sandbox