مستويات اشتراك قابلة للتجديد التلقائي في تطبيق iOS

صورة


مرحبا ، هذا هو رينات من Apphud . في هذه المقالة ، سنخبرك بمستويات الاشتراكات القابلة للتجديد التلقائي ، وكيفية تكوينها بشكل صحيح وفي الحالات التي يتم فيها رد المستخدم لفترة مدفوعة غير مستخدمة.


ما هو مستوى الاشتراك؟


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



مستويين للاشتراك في تطبيق صحيفة نيويورك تايمز.


كيفية إعداد مستويات الاشتراك؟


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



قم بسحب وإسقاط اشتراك إلى مستوى أعلى.


يجب أن يوفر رقم الاشتراك 1 أعلى مستوى من الخدمة ، على سبيل المثال ، الاشتراك في جميع فئات المجلات. لا يوجد اعتماد بين مدة الاشتراك ومستواه. لذلك ، يمكن أن يكون أعلى اشتراك سنويًا والاشتراك بمستوى أقل من شهر.


تغيير الاشتراك


يمكن للمستخدم تغيير الاشتراك في تطبيق App Store بعد تسجيله. يمكن أن تزيد (ترقية) ، وتخفيض (تقليله) المستوى أو تغيير الاشتراك داخل نفس المستوى (التقاطع).


ترقية مستوى الاشتراك (ترقية)


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



إشعار بأنه سيتم رد جزء من الأموال عند ترقية الاشتراك.


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


تخفيض الاشتراك (تقليله)


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


تغيير الاشتراك في نفس المستوى (التقاطع)


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


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


كيفية معرفة كيفية تغيير الاشتراك على الخادم؟


يمكنك التحقق من صحة متجر التطبيقات أو الاستماع إلى إشعارات خادم Apple.


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


بالإضافة إلى ذلك ، يمكنك إلقاء نظرة على قيمة auto_renew_product_id في pending_renewal_info . سيساعدك ذلك في التعرف على التغيير في product_id قبل سريان اشتراك جديد.


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


كيفية حساب مقدار العائد للترقيات؟


لفهم ما إذا كانت هناك ترقية ، تحتاج إلى التحقق من قيمة الحقل is_upgraded . قيمة true تعني أن المعاملة التالية موجودة بالفعل في الاشتراك الجديد.


لاحظ أن is_upgraded سيكون true حتى عند تغيير اشتراك بنفس المدة في نفس المستوى. بمعنى ، is_upgraded = true لا يعني زيادة في المستوى ، ولكن حقيقة أنه تم إجراء تغيير الاشتراك مع استرداد.


بالإضافة إلى الحقل is_upgraded ، is_upgraded الحقل cancellation_date في هذه المعاملة ، مما يشير إلى وقت الإلغاء. يساوي أو يتزامن تقريبًا مع تاريخ بدء المعاملة التالية.


اتضح أن حقل cancellation_date لا يظهر فقط عند إرجاع الاشتراك ، ولكن أيضًا عند الترقية.


لاحظ أنه عند ترقية اشتراكات Sandbox ، يكون حقل cancellation_date مفقودًا . لذلك ، عند الاختبار في Sandbox ، يجب عليك استخدام تاريخ purchase_date للمعاملة التالية بدلاً من cancellation_date . اقرأ المزيد عن تاريخ الإلغاء في وثائق Apple .


لحساب المبلغ الذي ينبغي إعادته إلى المستخدم ، تحتاج إلى تقسيم الفترة غير المستخدمة على الفترة الكاملة للاشتراك السابق وضرب تكلفته:


 # upgrade_date is `cancellation_date` in prodiction or `purchase_date` of new transaction in sandbox # to_f converts date to float timestamp value prorate_amount = price * (upgrade_date.to_f - cancellation_date.to_f) / (expires_date.to_f - purchase_date.to_f) 

كيف يتم تنفيذ هذا في Apphud؟


يتتبع Apphud تلقائيًا التغييرات في الاشتراكات ويحسب عودة الأجزاء غير المستخدمة.



مثال على تغيير الاشتراك في نفس المستوى مع عودة جزء من الأموال في Apphud.


مطور iOS غير مطلوب للتعامل مع هذه المواقف بنفسه. ما عليك سوى دمج SDK ، وسيتم تنفيذ الباقي بواسطة Apphud.


استنتاج


اتضح أن مجرد تحديث قيمة product_id ليس كافيًا: أنت بحاجة أيضًا إلى التفكير في استرداد الأموال للترقيات. يتطلب العمل مع الاشتراكات معالجة العديد من المواقف الحدودية. نحن نصنع Apphud - خدمة تبسط العمل مع الاشتراكات. يمكنك البدء في استخدامه مجانًا. التسجيل - على هذا الرابط .

Source: https://habr.com/ru/post/ar475758/


All Articles