كل المواضيع
التنفيذ العملي

كيف تبني اشتراك ما يتعطل عند أول تغيير؟

تابع اشتراك نورة من اختيار الباقة إلى التفعيل والترقية والتجديد وتعثّر الدفع، واعرف مسؤولية كل نظام في الرحلة.

آخر تحديث 2026-08-14

اختارت نورة باقة النمو بـ299 ر.س بالشهر. بعد 12 يوم، احتاج فريقها باقة التوسع. وعند التجديد، تعثرت البطاقة.

لو كل اللي عندك حقل اسمه is_paid، تبدأ المشاكل من أول تغيير. الاشتراك يحدد مدة الباقة، وما تشمل، وسعرها، وفاتورتها، وحالة الدفع. هنا نبنيه بدون ما تعيد بناء الفوترة داخل منتجك.

دورة الاشتراك

الاشتراك مو خانة تقول «دفع». له حالة تتغيّر مع الوقت.

كل حالة تجاوب عن سؤالين: وش يقدر العميل يستخدم الآن؟ وش المفروض يصير بعدها؟

01

تجربة

يجرّب المنتج

تنتهي أو تتحول

02

نشط

يستخدم الباقة

يتجدد أو يتغيّر

03

الدفع متعثر

مهلة للتحصيل

تُعاد المحاولة

04

ملغي

تتوقف الباقة

ويبقى السجل

تغيير الباقة يعدّل الاشتراك الحالي. ما ينشئ اشتراك ثاني.

احسم القرارات قبل ما تكتب الكود

اكتب قواعد الاشتراك من البداية. هي اللي توحّد قرار المنتج والفريق التجاري والهندسة.

القراروضع نورةليش يهم؟
متى تبدأ الباقة؟بعد نجاح أول دفعةما يستخدمها العميل قبل الدفع
متى تسري الترقية؟مباشرةيعرف تطبيقك متى يشغّل مزايا التوسع
كيف يُحسب فرق السعر؟احتساب تناسبي للـ18 يوم المتبقيةيحدد مبلغ الفاتورة
متى يسري خفض الباقة؟عند نهاية الدورةما تختفي مزايا دفع العميل قيمتها قبل نهاية الشهر
كم مهلة تعثّر الدفع؟7 أيامتحدد هل يستمر الحساب أثناء التحصيل، وإلى متى
متى ينتهي الإلغاء؟عند نهاية الدورة الحاليةيستفيد العميل من كامل المدة المدفوعة

الـAPI ما يقرر إذا كان خفض الباقة يبدأ مباشرة أو مع التجديد القادم. إذا ما حسمها الفريق، بيكون لكل جزء من النظام جواب مختلف.

كل معلومة لها مكان واحد

تطبيقك وترداد ومزود الدفع يشاركون في الرحلة نفسها. لكن مسؤولية كل واحد منهم مختلفة.

مين مسؤول عن وش؟

رحلة واحدة بين ثلاثة أنظمة. وكل معلومة لها مكان واحد.

تطبيقك

تجربة العميل

الحساب ومساحة العمل
اختيار الباقة
المزايا المشمولة
ترداد

الاشتراك والفوترة

الباقة وإصدار السعر
حالة الاشتراك
الاحتساب التناسبي والفاتورة
مزود الدفع

تحصيل المبلغ

وسيلة الدفع
تفويض العملية
نجاح الدفع أو تعثره
احفظ معرّفات ترداد عندك. لا تعيد بناء حالة الاشتراك في حقول متفرقة.

إذا اشتركت نورة، لازم يعرف ترداد أي حساب يخصها عندك، ويعرف تطبيقك أي اشتراك يخصها في ترداد. هذا الربط هو اللي يخلي تغيير الباقة أو التجديد ينعكس على الحساب الصحيح.

في تطبيقكفي تردادوش يربطهم؟
حساب نورةملف العميلنفس العميل حتى لو تغيّر بريده
مساحة عملهااشتراكهاالباقة الحالية وموعد التجديد
الباقة اللي اختارتهاالسعر المتفق عليهالسعر اللي تظهر عليه فواتيرها

لا تعتمد على البريد الإلكتروني وحده. نورة تقدر تغيّره، لكن حسابها واشتراكها يظلون هم نفسهم.

ابنِ الباقة قبل الاشتراك

رتّب النموذج التجاري بهذا الشكل:

  1. عرّف المزايا بأسماء يفهمها العميل.
  2. حدّد استحقاقات باقة النمو والحدود المشمولة.
  3. اربط السعر الشهري أو السنوي.
  4. انشر إصدار جديد تستخدمه الاشتراكات الجديدة.

إذا تغيّر سعر باقة النمو، لا تعدّل السعر القديم. انشر إصدار جديد. كذا تظل فواتير نورة القديمة مفهومة، ويبدأ العملاء الجدد بالشروط الجديدة.

فعّل الباقة بعد تأكيد الاشتراك

تضغط نورة «اختيار باقة النمو». الواجهة ترسل الطلب، لكنها ما تقرر إن الاشتراك بدأ.

تفعيل الاشتراك

نورة اختارت باقة النمو. متى تفتح لها المزايا؟

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

العملية تمشي كذا:

  1. الـbackend عندك ينشئ العميل في ترداد أو يربطه بحساب موجود.
  2. ينشئ الاشتراك بمفتاح يمنع تكرار الطلب.
  3. يرسل مزود الدفع نتيجة العملية إلى ترداد.
  4. يحدّث ترداد حالة الاشتراك.
  5. يستقبل تطبيقك النتيجة أو الـwebhook، وبعدها يفحص الاستحقاقات.

ليش ما تعتمد على صفحة النجاح؟ ممكن تقفل نورة الصفحة قبل ما تفتح. وممكن أحد يستدعيها مباشرة. وممكن يتأخر تأكيد الدفع عن رجوع المتصفح. ولا وحدة من هذه الحالات تعني أن الدفع نجح.

خل معالجة الـwebhook تشتغل حتى مع التكرار

الـwebhook ممكن يوصل مرتين أو بترتيب مختلف. هذا طبيعي، مو حالة نادرة.

مع كل حدث:

  • تحقق من التوقيع؛
  • احفظ معرّف الحدث قبل ما تطبّق التغيير؛
  • تجاهل الحدث إذا عالجته؛
  • لا تستبدل حالة جديدة بحدث أقدم؛
  • إذا ما كانت الحالة واضحة، اجلب الاشتراك الحالي من ترداد.

الحدث ينبهك بوجود تغيير. سجل الاشتراك في ترداد يعطيك الحالة الحالية.

غيّر الباقة، مو هوية الاشتراك

في اليوم 12، رقّت نورة من النمو إلى التوسع. ما تحتاج تنشئ عميل جديد أو اشتراك ثاني. غيّر الباقة على الاشتراك نفسه.

ترقية في منتصف الدورة

انتقلت نورة من النمو إلى التوسع في اليوم 12. وش يتغيّر؟

01

باقة النمو

من اليوم 1 إلى 12

أيام استخدمتها نورة

ترداد يحسب المتبقي من النمو وتكلفة التوسع لبقية الدورة
02

باقة التوسع

من اليوم 12 إلى 30

مزايا أكثر

01اشتراك نشط واحد
02تتغيّر الاستحقاقات مباشرة
03الفرق يظهر في الفاتورة
04التجديد القادم بسعر التوسع

بعد تأكيد التغيير، يفحص تطبيقك الاستحقاقات من جديد. تشتغل مزايا التوسع مباشرة، بدون ما يحسب تطبيقك قيمة الأيام المتبقية أو فرق السعر أو الضريبة أو رصيد الفاتورة.

أما خفض الباقة، فتقدر تجدوله للتجديد القادم. تكمل نورة مدتها الحالية، وتشوف التغيير القادم وتقدر تتراجع عنه.

تعثّر الدفع مو إلغاء

عند التجديد، تعثرت دفعة نورة. صار عندك ثلاث معلومات مهمة في الوقت نفسه:

  • فاتورة التجديد ما اندفعت؛
  • الاشتراك دخل مرحلة متابعة التحصيل؛
  • قد تترك الحساب يعمل سبعة أيام إضافية حسب سياستك.

لا تختصرها كلها في active = false. تعثّر الدفعة ما يعني أن الاشتراك انتهى.

حالة الاشتراكوش يصير في المنتج؟وش يحتاج يعرف العميل؟
نشطيعمل الحساب كالمعتادموعد التجديد القادم
الدفع متعثريستمر الحساب حسب سياستكتحديث وسيلة الدفع قبل نهاية المهلة
تم التحصيليرجع كل شيء طبيعيتأكيد استلام الدفعة
ملغيتتوقف مزايا الباقة في الموعد المتفق عليهتاريخ توقف الخدمة

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

اختبر الوقت والتكرار والفشل

المسار السهل ما يكفي. قبل الإطلاق، اختبر هذه الحالات:

  • انتهت مهلة طلب الإنشاء، ثم أُعيد الطلب بالمفتاح نفسه؛
  • وصل حدث التفعيل مرتين؛
  • وصل حدث قديم بعد حدث أحدث؛
  • صارت الترقية عند لحظة انتهاء دورة الفوترة؛
  • فشل دفع فرق الترقية؛
  • تعثّر التجديد ثم نجحت المحاولة التالية؛
  • جُدول الإلغاء ثم تراجع العميل عنه؛
  • احتفظت الفواتير القديمة بإصدار السعر الصحيح.

تعرف إن التنفيذ جاهز لما تقدر تجاوب عن سؤال واحد عند كل تغيير: وين تُحفظ الحالة الصحيحة، وكيف تعرفها بقية الأنظمة؟

ابنِ دورة اشتراك واحدة. لا توزعها بين حقل للدفع واسم باقة وتاريخ إلغاء ممكن تختلف عن بعض.

الخطوة التالية: الاشتراك يحدد وش اشترت نورة. الآن اربط استخدامها بالحد المشمول والفاتورة.