كما يبدو أنه عند تسجيل خروج المستخدم، يتم حذف جميع اشتراكات الدفع. لذا، إذا كان المستخدم مسجلاً للدخول على أجهزة متعددة (هاتف، متصفح، جهاز لوحي) وتسجل الخروج من جهاز أو جلسة واحدة، فإن ذلك يمنع الأجهزة الأخرى من استقبال الإشعارات لأن اشتراكات الدفع الخاصة بها قد تم حذفها.
أذكر هذا لأنه يتعلق بمعرفة أي اشتراك يحتاج إلى استبدال أثناء التجديد، وأي اشتراك يجب حذفه عند تسجيل الخروج.
حسناً، لقد تم تسجيل خروجي من Meta اليوم، وبعد تسجيل الدخول، تلقيت إشعاراً لدفع بشأن مشاركتك… ما لم يكن الأمر مقتصراً فقط على مسار تسجيل الدخول الذي يبدأه المستخدم
عند عودة المستخدم إلى المنتدى (أو تسجيل الدخول)، يتم إرسال اشتراكات المتصفح مرة أخرى وإعادة إنشائها. أما إذا قمت بتسجيل الخروج، فسيتم حذفها ولن يتم تسليم أي إشعارات دفع حتى يعود المستخدم إلى المنتدى من ذلك الجهاز.
هذا لا يتعارض مع ما ذكرته، حيث يبدو أنك تقصد أنك تلقيت إشعار الدفع بعد تسجيل الدخول.
يحتوي Push API على دالة unsubscribe لإبطال اشتراك الإشعارات الدافعة:
عند تسجيل الخروج، يمكننا استدعاء هذه الدالة (على جانب العميل) مما سيجعل الاشتراك غير صالح على الخادم دون التأثير على أي اشتراكات أخرى.
في الواقع، يحتوي العميل بالفعل على دالة unsubscribePushNotification تقوم بذلك في تفضيلات “الإشعارات المباشرة”. ربما يكون الحل هو استدعاء هذه الدالة عند تسجيل الخروج من جانب العميل إذا كانت الإشعارات المباشرة مفعلة. ومن الجيد عملياً إلغاء مفاتيح اشتراك العميل بدلاً من مجرد حذفها من الخادم.