مرحبًا،
أحاول حاليًا تجربة هذا الإضافة للاستخدام المستقبلي على مثيلي، وواجهت مشكلة.
حسابي في Stripe جديد وغير مُتحقق منه، مما يعني أنه يستخدم بيانات اختبارية يمكنني مسحها من لوحة تحكم Stripe > Developers.
المشكلة هي أن مسح البيانات في Stripe لا يؤدي إلى حذف نفس البيانات في مثيل المنتدى. وهذا قد يتسبب في انهيار صفحة الفواتير > الدفع الخاصة بالمستخدم.
خطوات إعادة إنتاج المشكلة
- إنشاء خطة اشتراك.
- اشتراك مستخدم في الخطة. سيعطيه Stripe
customer_idمثلcus_abcd1234567890. - مسح البيانات من لوحة تحكم Stripe.
- إعادة محاولة فتح صفحة الفواتير الخاصة بالمستخدم ستؤدي إلى انهيار أثناء تحميل
/s/user/paymentمع ظهور النص التالي في وحدة تحكم المتصفح:
{\"errors\":[\"No such customer: 'cus_abcd1234567890'\"]}
بعد استكشاف قاعدة بيانات مثيلي، وجدت بيانات سابقة من عمليات المسح المتعددة التي قمت بها في الجداول التالية:
discourse_subscriptions_customers: يتسبب في انهيار صفحة الفواتير الخاصة بالمستخدم.discourse_subscriptions_productsdiscourse_subscriptions_subscriptions
الجداول الأخيرتان لا يبدوان أنهما يتسببان في انهيار. ومع ذلك، لا تزال تحتويان على بيانات منتهية الصلاحية.
الحذف اليدوي للصفحة (الصفحات) المشكلة في discourse_subscriptions_customers يحل مشكلة الانهيار الخاصة بالمستخدم. لكن القيام بذلك عبر طلب SQL معقد وخطير، خاصة للمستخدمين غير ذوي الخبرة.
يمكن ملاحظة أيضًا أن هذه المشكلة لا تحدث عند حذف معلومات المستخدم يدويًا من لوحة تحكم Stripe. فـ Stripe لا تزال تحتفظ بمعلومات أرشيفية عنه وتُصنّفه على أنه “مُحذوف نهائيًا”.
الحلول المقترحة
إذا أمكن، إنشاء آلية تسمح لـ Stripe بإخبار Discourse بأن بيانات الاختبار قد تم مسحها، وبالتالي يجب حذف البيانات في تلك الجداول.
أو،
في خيارات الإضافة، إنشاء زر لـ “مسح بيانات الاختبار” مع علامة تحذير حمراء كبيرة للتأكد من أن المسؤول يدرك ما يفعله.