الكوديكس · III

الاشتراكات

الاشتراكات

يستطيع Coin Moebius بيع اشتراكات متكررة على كل مزود نقدي في قائمتك. يهيّئ التاجر السعر والفترة مرة واحدة على منتج؛ ويبقى زر الشراء على الموقع كما هو تماماً. يدير مزود الدفع الفوترة المتكررة، ويحتفظ بالبطاقة، ويعيد محاولة التجديدات الفاشلة، ويستضيف صفحة الإلغاء. ويُرحّل Coin Moebius أحداث دورة الحياة إلى كودك.

إعداد منتج متكرر

في تبويب المنتجات بلوحة التحكم، اضبط حقل الفوترة على شهري أو سنوي بدلاً من لمرة واحدة. ويظهر حقل تجربة مجانية اختياري لأي أيام تجربة تريد منحها قبل الخصم الأول. احفظ المنتج.

لا تتغير HTML زر الشراء. تعمل خاصية product-id="pro-plan" نفسها لمرة واحدة أو متكرر؛ يتحقق الـ worker من إعداد فوترة المنتج وقت الدفع ويوجّه عبر واجهة اشتراكات المزود البرمجية عند الاقتضاء.

<coin-moebius-buy
  project-id="proj_YOUR_ID"
  product-id="pro-plan"
  label="Subscribe to Pro">
</coin-moebius-buy>

ما لا تضطر إلى بنائه

يدير المزود الجدول. لا نخزّن بطاقات. ولا نشغّل مهام cron. ولا نعيد محاولة الخصومات الفاشلة. ولا نرسل رسائل تحصيل متأخرات. ولا نستضيف صفحة إلغاء. ذلك الجانب كله من النظام يعيش داخل Stripe (أو أي مزود نقدي ربطته). أنت تُسنِد الأجزاء الصعبة من الفوترة المتكررة إلى الشركة التي تشغّلها بالفعل لملايين التجار.

أحداث الاشتراك

تظهر التجديدات والإلغاءات كأحداث webhook يمكن لخادمك التفاعل معها. خمسة أنواع موحَّدة تغطي دورة الحياة:

الحدثمتى يُطلَق
subscription.createdتسجيل جديد. يحمل مبلغ الدورة الأولى.
subscription.renewedنجحت دورة غير أولية. مدّد الوصول حتى نهاية الفترة الجديدة.
subscription.payment_failedرُفِضت بطاقة دورة. يعيد تحصيل المتأخرات لدى المزود المحاولة وفق جدوله؛ وعادةً ما تسجّل هذا للوضوح فحسب.
subscription.canceledإلغاء نهائي. ألغى المشتري، أو استُنفِد تحصيل المتأخرات، أو ألغى التاجر.
subscription.updatedتغيّر الحالة، أو تحديث البطاقة، أو تغيّر الخطة. افحص الحالة الجديدة.

التعرّف على المشترين دون تخزينهم

Coin Moebius موجّه دفع، لا قاعدة بيانات عملاء. لا نخزّن أبداً رسائل بريد المشترين، أو أسماءهم، أو عناوينهم، أو معرّفات عملاء المزود الداخلية. إن كان لتطبيقك حسابات مستخدمين (معظم تطبيقات الاشتراك لها)، فمرّر معرّف مستخدمك المبهم بصفة customer-ref على زر الشراء. يمرّره الزر إلى الـ worker بصفة metadata.customerRef، ونمرّره إلى المزود، ونُظهره ثانيةً على كل حدث، ونخزّن ذلك النص المبهم فقط. وبالنسبة لنا بلا معنى؛ وبالنسبة لك هو المفتاح الأجنبي إلى نظام مستخدميك الخاص.

<coin-moebius-buy
  project-id="proj_YOUR_ID"
  product-id="pro-plan"
  customer-ref="user_bob_42">
</coin-moebius-buy>

وحين تحتاج تفاصيل مشترٍ أعمق (البريد الإلكتروني، وآخر أربعة أرقام للبطاقة، وملاحظات النزاعات)، تربط لوحة التحكم كل معاملة بطاقة خارجاً إلى المزود الذي تولّاها (Stripe، أو PayPal، أو Square، أو Authorize.Net)، حيث يعيش سجل المشتري فعلاً. تنقر للذهاب؛ ولا نكرّره أبداً.

الإلغاء: اربط خارجاً، لا تبنِ

يلغي المشترون في بوابة المزود المستضافة: بوابة عملاء Stripe، وصفحة حساب PayPal للمشتري، وهكذا. وتتولى البوابة الإلغاء، وتحديثات البطاقة، وتنزيلات الإيصالات، وتغييرات الخطة، وكلها واجهة لا تضطر إلى بنائها. ويمكنك إدخال المشتري إلى البوابة باستدعاء واجهة برمجية واحد:

const res = await fetch(
  `https://api.coinmoebius.com/api/subscriptions/${projectId}/${subId}/portal-url`,
  { method: 'POST', body: JSON.stringify({ returnUrl: 'https://you.example/account' }) },
);
const { url } = await res.json();
window.location.assign(url);

أي المزودين يدعمون الاشتراكات اليوم

تعمل Stripe وPayPal من البداية إلى النهاية عبر زر الشراء المستضاف. اضبط منتجاً على شهري أو سنوي في لوحة تحكمك، والصق الزر على صفحتك، فتبدأ النقرة اشتراكاً حقيقياً. ويدير المزود عمليات التجديد.

لا تجري اشتراكات Square وAuthorize.Net عبر زر الشراء المستضاف. تنشئ الاشتراك عبر تكاملك الخاص مع المزود (لـ Authorize.Net، يعني ذلك جمع البطاقة على صفحتك الخاصة بـ Accept.js؛ ولـ Square صفحة دفع اشتراكات مستضافة خاصة بها يمكنك استخدامها)، ثم توجّه webhook المزود إلينا. ومن هناك يعمل بقية النظام (توجيه الـ webhook، ولوحة التحكم، ونقطة نهاية الحالة، وربط العملاء) بالطريقة نفسها تماماً التي يعمل بها لاشتراكات Stripe وPayPal. اطّلع على القسم التالي.

لا تدعم مزودات العملات الرقمية (NOWPayments) الفوترة المتكررة في هذا المنتج. فالعملات الرقمية المتكررة مرهقة بالاحتكاك على كل بوابة قيّمناها؛ ونفضّل ألا نطلق شيئاً على أن نطلق قصة نصف معطّلة لها.

جاهز لربطه؟

تغطي الطبقة المجانية معظم المواقع ولا تطلب بطاقة أبداً.