أهلاً بالجميع! أواجه مشكلة وأحاول حلها منذ أيام دون نجاح، لذا آمل أن يتمكن شخص ما هنا من المساعدة
Discourse 3.4.0.beta1-dev Subscriptions 2.8.1 - f0b4984 تثبيت Docker على جهاز افتراضي Linux
لقد قمت بتثبيت وتفعيل إضافة الاشتراكات، وهي تعمل في معظم الأحيان عند استخدام جدول التسعير المدمج (في بعض الأحيان لا تتم إضافة مستخدم إلى المجموعات بعد الاشتراك، ولكن هذه مشكلة منفصلة على ما أعتقد).
ومع ذلك، أحتاج حقًا إلى استخدام جدول التسعير وواجهة الدفع الخاصة بـ Stripe للحصول على تجربة المستخدم المألوفة والثقة التي توفرها. ولهذا الغرض، قمت بإعداد كل شيء لطلبات الويب (webhooks)، مع تكوين جميع الأسرار وما إلى ذلك (أستخدم حاليًا وضع الاختبار، لذا أستخدم مفاتيح وأسرار وضع الاختبار).
يمكنني بنجاح الانتقال إلى صفحة الاشتراك، والمرور عبر تدفق الدفع من جدول التسعير، وإتمام عملية الدفع باستخدام بطاقات الاختبار.
ومع ذلك، لا ينتج عن هذا إنشاء اشتراك في Discourse ولا أي تغيير في مجموعات المستخدم، وعند النظر إلى طلبات الويب في لوحة تحكم Stripe، أرى أنها تتلقى استجابة 422 مع النص التالي:
{
"errors": [
"customer not found"
]
}
لقد جربت هذا مع عدد قليل من المستخدمين المختلفين الآن، والنتيجة هي نفسها دائمًا.
بعد البحث في قاعدة البيانات، لا أرى العملاء المذكورين في طلب الويب الخاص بـ Stripe في جدول discourse_subscriptions_customers، ولا يوجد اشتراك مطابق في جدول discourse_subscriptions_subscriptions أيضًا - وهو ما قد يكون متوقعًا نظرًا لأن مكالمة طلب الويب لم تتم معالجتها؟
للعلم، لقد تحققت من أن مكالمات طلب الويب الخاصة بـ Stripe يمكن أن تنجح بشكل عام - إذا قمت بتعطيل إعداد “استخدام جدول التسعير الخاص بـ Stripe”، ومررت عبر واجهة الدفع المدمجة لإنشاء اشتراك، فإن كل شيء يكون على ما يرام - وإذا قمت بإلغاء الاشتراك من Stripe بعد ذلك، فإن طلب الويب customer.subscription.deleted يأتي دون مشكلة.
آمل أن أكون قد ارتكبت خطأً بسيطًا هنا ولم يتم إعداده بشكل صحيح، ولكني أواجه صعوبة حقًا في معرفة ما أحتاج إلى القيام به لجعله يعمل.
عذرًا لأنك تواجه مشكلات، ولكن شكرًا لك على إثارة هذا الأمر. نأمل أن نتمكن من اكتشاف ما يحدث. أول سؤال لدي هو ما إذا كانت المنتجات التي حددتها لجدول التسعير هي منتجات قمت بإنشائها من داخل Discourse أم تم إنشاؤها داخل Stripe؟
لقد جربت كلا الطريقتين، في البداية قمت بإعداد المنتجات في Stripe، ثم وجدت مواضيع هنا تقترح أنه يجب إنشاؤها داخل Discourse، لذا قمت بالتبديل للقيام بذلك بدلاً من ذلك. ومع ذلك، ما زلت أرى نفس المشكلة.
أنا أفترض (وأعتذر إذا كان ذلك غير صحيح) أن الرابط إلى المجموعات مدفوع ببيانات وصفية للمنتج؟ أرى هذا تحت هناك:
لقد قمت بإنشاء إصلاح لاستجابة “العميل غير موجود” مع جدول الأسعار. إذا قمت بتحديث المكون الإضافي للاشتراكات الخاص بك وحاولت مرة أخرى، فيجب أن يعمل الآن.
أعتذر عن التأخير في الرد عليك، وشكراً مرة أخرى على اهتمامك
لقد قمت بتحديث كل شيء وأجريت اختبارًا سريعًا، وما زلت أرى نفس الاستجابة (أي، لم يتم العثور على العميل) لخطافات الويب الخاصة بـ Stripe.
هل تعتقد أنه ربما يجب عليّ إنشاء جدول تسعير جديد تمامًا / مجموعة منتجات واختبار ذلك، لاستبعاد أي مشكلات قد تكون متبقية من الاختبارات السابقة (لقد استخدمت مستخدمًا جديدًا لهذا الاختبار، ولكن المنتجات هي تلك التي كانت موجودة من قبل).
وهل هذا للاشتراك أم لعملية شراء لمرة واحدة مع جدول التسعير؟
لقد أضفت إعدادًا جديدًا لإضافة الاشتراك لأغراض التصحيح. تسمى discourse_subscriptions_enable_verbose_logging. بمجرد تمكينها، يمكنك زيارة /logs ومحاولة عملية الدفع مرة أخرى ومعرفة ما إذا كنت ترى أي مخرجات منها. لا تتردد في إرسال بعض لقطات الشاشة لي عبر رسالة خاصة ويمكنني المساعدة في تصحيح الأمور لك.