المدفوعات
Video coming soon
فيديو المدفوعات في الطريق. في هذه الأثناء، يغطي هذا الدرس الطريقة الحالية لقبول المدفوعات في DYPAI اليوم.
ادمج المدفوعات حتى يتمكن تطبيقك من تحصيل رسوم من العملاء. المسار الحالي يستخدم عقدة سير عمل Stripe العامة مع مفاتيح Stripe الخاصة بك (BYOK)، فيعمل كل منطق التحصيل على الخادم وتبقى أسرارك خارج الواجهة.
المسار الحالي: عقدة Stripe + بيانات اعتماد BYOK
أضف بيانات اعتماد Stripe
في مشروعك، اذهب إلى Studio → Settings → Advanced settings → Manual service credentials وأنشئ بيانات اعتماد Stripe بمفتاح Stripe السري. للتحقق من الأحداث الواردة، أضف أيضاً بيانات اعتماد Stripe Webhook بسر توقيع webhook. تُخزَّن هذه مشفّرة (Fernet، لكل مشروع) وتُفك فقط وقت التنفيذ — ولا تُعرض للمتصفح أبداً.
ابنِ endpoint للدفع
في Build → API، أنشئ endpoint وأضف عقدة Stripe إلى سير عملها (مثلاً لإنشاء Checkout Session أو PaymentIntent). تستخدم العقدة بيانات اعتماد Stripe التي أضفتها؛ وتعمل على الخادم، فلا يصل المفتاح السري إلى العميل أبداً.
عالج webhook
أنشئ endpoint ثانياً مع Webhook trigger حتى تتمكّن Stripe من إشعارك عند نجاح الدفع. تحقّق من توقيع الحدث باستخدام بيانات اعتماد Stripe Webhook، ثم حدّث قاعدة بياناتك (علّم الطلب مدفوعاً، افتح ميزة، وغيرها).
اختبر قبل الإطلاق
استخدم مفاتيح وضع الاختبار في Stripe وبطاقة اختبار لتشغيل التدفق كاملاً من البداية إلى النهاية قبل التبديل إلى المفاتيح الحية.
أبقِ الأسرار على الخادم
لا تضع مفتاح Stripe السري في متغير Frontend (Build) — فتلك تُدمج في حزمة العميل. منطق التحصيل ينتمي إلى endpoint يستخدم بيانات اعتماد Stripe. لأسرار التشغيل الأخرى، استخدم Backend Secrets (Ship → Frontend → Variables)، المشار إليها بـ ctx.secrets.X.
مدفوعات DYPAI
عند تفعيلها لبيئتك، افتح Studio → Payments. اختر Test وبلد عملك وConnect Stripe. يمكن لمشرف المؤسسة على خطة مدفوعة إكمال التحقق وإدارة المدفوعات والمسحوبات داخل DYPAI.
يعرض تبويب Overview صافي الإيرادات والاشتراكات النشطة ورسماً بيانياً لآخر 7 أو 30 أو 90 يوماً. يستخدم صافي الإيرادات قيود دفتر Stripe بما فيها الرسوم الفعلية والتسويات؛ وليس رصيد المسحوبات المتاح. تُعرض العملات منفصلة والتواريخ تستخدم UTC.
تحت Transactions، اعرض المدفوعات أو الاشتراكات. تحت Adjustments، اعرض المبالغ المستردة والنزاعات وإشعارات الائتمان. القوائم مُقسَّمة إلى صفحات. Stripe account يفتح إعداد الحساب وإدارة مضمّنة للمدفوعات والاسترداد والمسحوبات.
تتحقق قائمة التحضير من جاهزية الحساب والمنتجات وعملية Checkout مدفوعة مؤكدة. إنشاء عرض واختبار عملية شراء وCustomer portal → Add to my app يجهّز طلب مساعد: راجع المسودة وأرسلها لتنفيذ التغيير. يجب أن تُفتح بوابة المشتري في تبويب جديد وتحل ملكية العميل من المستخدم المصادق عليه على الخادم.
اختر DYPAI Connect والبيئة في عقدة Stripe. أنشئ العملاء والمنتجات والأسعار وCheckout Sessions لمدفوعات لمرة واحدة أو بالاشتراك دون إدخال مفاتيح Stripe. العمليات المعدِّلة تتطلب مفتاح idempotency مستقراً، مثل معرّف طلبك. يجب أن تنتمي الأسعار إلى الحساب المتصل في تلك البيئة.
لاستقبال الأحداث في Flow منشور، استخدم .webhook({ provider: "stripe", event: "invoice.paid", verify: { mode: "stripe", credential: "dypai-stripe-connect-test" } }). ربط الحساب ينشئ بيانات الاعتماد هذه. استخدم dypai-stripe-connect-live للإنتاج. اختبر رحلة الدفع كاملة وحدّث طلبك فقط بعد تأكيد الدفع عبر الحدث المناسب.
حسابا الاختبار والإنتاج مستقلان. المعاينات ترفض عمليات الإنتاج المُدارة. تعرض البطاقة المدفوعات والمسحوبات والأحداث الفاشلة، مع خيارات للتحقق من الاتصال وإعادة المحاولة. تبقى مفاتيح Stripe الصريحة متاحة لعمليات عقدة Stripe الأصلية الأخرى.
ماذا ستتعلم
- إضافة بيانات اعتماد Stripe وStripe Webhook تحت Credentials
- التحصيل من endpoint على الخادم بعقدة Stripe
- التحقق من webhooks وإبقاء الأسرار خارج الواجهة
- الاختبار في وضع اختبار Stripe قبل الإطلاق
اكتملت السلسلة
لقد أكملت مسار بناء أول تطبيق لك. عد إلى نظرة عامة على الدروس أو استكشف بقية التوثيق.