React-native-iap: لا يتم حل buySubscription عند تغيير الاشتراكات في iOS

تم إنشاؤها على ٢٦ سبتمبر ٢٠١٨  ·  14تعليقات  ·  مصدر: dooboolab/react-native-iap

نسخة من رد فعل - أصلية - IAP

2.2.2

المنصات التي واجهت الخطأ فيها (IOS أو Android أو كليهما؟)

iOS

سلوك متوقع

يجب أن يتم حل buySubscription عند التغيير من الاشتراك الشهري إلى الاشتراك السنوي ، بدلاً من الرفض وإرجاع الخطأ ، مما يفرض شرط الصيد.

السلوك الفعلي

إذا كنت مشتركًا حاليًا في خطة واحدة ، فإن التغيير إلى خطة أخرى يتسبب في buySubscription يكتشف الخطأ التالي ويعيده:
screen shot 2018-09-27 at 1 21 10 am

بيئة اختبار (محاكي؟ جهاز حقيقي؟)

جهاز حقيقي ، iPhone 6

خطوات إعادة إنتاج السلوك

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

هذا كسر بالنسبة لي الآن لأنه لا توجد طريقة للتأكد من أنهم قاموا بالفعل بشراء أو التحقق من صحة الإيصالات لهذه الحالات. يرجى إعلامي إذا كنت تعرف حلًا بديلًا أو إصلاحًا ، أو إذا كان هناك أي شيء يمكنني القيام به للمساعدة (على الرغم من عدم وجود خبرة في Obj-C). الحل الوحيد الممكن الذي يمكنني التفكير فيه الآن هو إذا قامت buySubscriptions بإرجاع خطأ ، والتحقق من هذا الخطأ وإذا كان يتطابق مع هذا الخطأ ، ثم تأكيد الشراء. لكن هذا أمر خطير للغاية لأنه يجعل التحقق من صحة الإيصال مستحيلًا وقد ينتج عن خطأ آخر (مثل عدم القدرة على الاتصال بالخادم أو شيء ما) نفس رمز الخطأ ، مما يمنح المستخدم الاشتراك دون الحاجة إلى دفع ثمنه بالفعل. بعبارة أخرى ، لا يمكنني التفكير في الحلول الممكنة في الوقت الحالي. نسيت شيئا ما هنا؟ هل هناك سبب لعدم حاجتي إلى حل الوعد من buySubscribe؟ سأكون ممتنا جدا لسماع من شخص ما.

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

EDIT2 : يعمل أحيانًا ولكني لست متأكدًا بعد من كيفية التكاثر ، وسأقدم تقريرًا إذا وجدت طريقة. عندما يعمل ، يطلب مربع الحوار الأول كلمة المرور الخاصة بي ، ثم يستمر بشكل طبيعي كما لو لم يكن لدي بالفعل اشتراك آخر ، على عكس عندما يكون مربع الحوار الأول هو "تأكيد الشراء" ويسأل عما إذا كنت أرغب في تعديل اشتراكي ، وهو ما يظهر عندما لا يعمل. عندما يعمل ، تتم إضافة الاشتراك الذي تم شراؤه إلى سجل الشراء الخاص بي كما هو متوقع.

EDIT3 : لقد التقطت صورة لرسالة خطأ خاطئة من قبل. لقد قمت الآن بتصحيح ذلك. تقرأ رسالة الخطأ: "خطأ: حدث خطأ غير معروف أو غير متوقع. الرجاء المحاولة مرة أخرى لاحقًا." قد ترغب أيضًا في النظر في الطريقة المستخدمة لشراء المنتجات في أدوات التفاعل الأصلية داخل التطبيق. يستخدمون طريقة مختلفة ويمكن أن تساعد الاختلافات في تفسير سبب حدوث ذلك ، على الرغم من أنني لم أستخدم هذه المكتبة وبالتالي لا يمكنني تأكيد عدم حدوث ذلك هناك.

🍗 enhancement 🐛 bug 📱 iOS

التعليق الأكثر فائدة

نظرت إليها مرة أخرى اليوم وأعتقد أنني وجدت شيئًا ملحوظًا. ما يبدو أنه يحدث هو ما تم العثور عليه في هذا الخطأ: https://github.com/bizz84/SwiftyStoreKit/issues/269. عند التبديل بين اشتراكات التجديد التلقائي في نفس المجموعة ، لا تتم المعاملة لأنه لن يتم إصدار فاتورة للمستخدم حتى انتهاء صلاحية الاشتراك الحالي. ولكن تم تسجيله بنجاح وستتم معالجة الدفع بمجرد انتهاء الاشتراك الحالي ، ولكن ليس حتى ذلك الحين. وبالتالي ، فشلت عمليات إرجاع المعاملة لأنه لم تحدث بالفعل أي معاملة حتى الآن. لذلك لا أعتقد أن أي شيء يحدث خطأ بالفعل في عملية الدفع ، إنه مجرد تسجيل للمعاملة المرتدة كخطأ. لكنني لم أختبر هذا بعد لأنني عثرت عليه للتو ويتصرف مصحح الأخطاء ويتأخر الوقت لذا لن أحاول حله حتى الغد. سيكون رائعًا إذا حاول شخص ما التأكيد في هذه الأثناء (أي بالتبديل بين الاشتراكات ثم معرفة ما إذا كانت المعاملة الخاصة بالعملية الثانية تنبثق في سجل الشراء بمجرد انتهاء صلاحية الأولى ، أو شيء من هذا القبيل). إذا كان هذا هو ما يحدث ، فسيكون رائعًا إذا تمكنا من اكتشاف طريقة ما للتعامل معه. إذا كان الخطأ الذي تولده خاصًا بهذه العملية ، فيمكننا فقط تمرير ذلك كقيمة إرجاع للوعد حتى نتمكن من التعامل معه بشكل صحيح (على سبيل المثال ، عدم إنشاء رسالة خطأ للمستخدم ، أو تحديث معلومات اشتراك المستخدم). أحب أن أسمع أفكار أي شخص حول ما إذا كان هذا يتحقق وكيفية المتابعة.

ال 14 كومينتر

هل يمكنك تجربة الإصدار الأخير الآن وهو 2.3.15 ؟

نعم ، سآخذها في جولة في وقت ما اليوم

kevinEsherick ما هي

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

kevinEsherick كيف "بدلت" الاشتراك؟ أعتقد أنك "تلغي" الاشتراك الشهري ، و "تشتري مرة أخرى" الاشتراك السنوي. هل هذا صحيح؟

على نظام iOS ، ألا يمكنك تبديل الاشتراك بالذهاب إلى تطبيق الإعدادات لإدارة اشتراكاتك ، ثم اختيار منتج مختلف ضمن نفس المجموعة؟

JJMoon لا ، أنا ببساطة أشتري الاشتراك الشهري داخل التطبيق ، ثم أشتري الاشتراك السنوي داخل التطبيق. إنهم يجددون الاشتراكات تلقائيًا في نفس مجموعة الاشتراك. إذا كان هناك اشتراكان (A و B) في نفس المجموعة على iTunes Connect ، فمن المفترض أن يؤدي شراء B أثناء الاشتراك في A إلى إلغاء A تلقائيًا والاشتراك في B. هل تعتقد أنها مشكلة في هذه الحزمة التي لا تدعم هذه الوظيفة؟ إذا كان الأمر كذلك ، فهل يمكننا إيجاد طريقة لتنفيذ ذلك؟

أنا أيضا أواجه هذه المشكلة. أي تقدم؟

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

بالنظر إلى ذلك ، أدركت أنه يبدو أن Apple تدرك التغيير في الاشتراك على الأقل إلى حد ما. إذا قمت بالتبديل من ، على سبيل المثال ، شهريًا إلى سنوي ، فسيظهر الشكل المناسب مع اللغة المتعلقة بتعديل اشتراكك. عندما أشتري سنويًا ، هناك خطأ ولم يتم حل buySubscription. ولكن عندما أعود لإجراء عملية شراء مرة أخرى ، هذه المرة أعود إلى الاشتراك الشهري ، تعرف واجهة برمجة تطبيقات Apple أنني مشترك في الاشتراك السنوي وتعرض صيغة "هل تريد تعديل اشتراكك ..." مرة أخرى. لست متأكدًا بعد من كيفية ظهور هذا في الإنتاج ، حيث أن كل هذا في وضع الحماية. سأبحث في هذا الأمر أكثر في وقت ما الليلة ، لكن هذا قد يعني أن الأمور على ما يرام من جانب Apple وأنه مجرد خطأ من جانب العميل. إذا كانت هذه هي الحالة ، فقد لا يكون هذا خطأ فادحًا ، لكنه لا يزال يتطلب إصلاحًا.

نظرت إليها مرة أخرى اليوم وأعتقد أنني وجدت شيئًا ملحوظًا. ما يبدو أنه يحدث هو ما تم العثور عليه في هذا الخطأ: https://github.com/bizz84/SwiftyStoreKit/issues/269. عند التبديل بين اشتراكات التجديد التلقائي في نفس المجموعة ، لا تتم المعاملة لأنه لن يتم إصدار فاتورة للمستخدم حتى انتهاء صلاحية الاشتراك الحالي. ولكن تم تسجيله بنجاح وستتم معالجة الدفع بمجرد انتهاء الاشتراك الحالي ، ولكن ليس حتى ذلك الحين. وبالتالي ، فشلت عمليات إرجاع المعاملة لأنه لم تحدث بالفعل أي معاملة حتى الآن. لذلك لا أعتقد أن أي شيء يحدث خطأ بالفعل في عملية الدفع ، إنه مجرد تسجيل للمعاملة المرتدة كخطأ. لكنني لم أختبر هذا بعد لأنني عثرت عليه للتو ويتصرف مصحح الأخطاء ويتأخر الوقت لذا لن أحاول حله حتى الغد. سيكون رائعًا إذا حاول شخص ما التأكيد في هذه الأثناء (أي بالتبديل بين الاشتراكات ثم معرفة ما إذا كانت المعاملة الخاصة بالعملية الثانية تنبثق في سجل الشراء بمجرد انتهاء صلاحية الأولى ، أو شيء من هذا القبيل). إذا كان هذا هو ما يحدث ، فسيكون رائعًا إذا تمكنا من اكتشاف طريقة ما للتعامل معه. إذا كان الخطأ الذي تولده خاصًا بهذه العملية ، فيمكننا فقط تمرير ذلك كقيمة إرجاع للوعد حتى نتمكن من التعامل معه بشكل صحيح (على سبيل المثال ، عدم إنشاء رسالة خطأ للمستخدم ، أو تحديث معلومات اشتراك المستخدم). أحب أن أسمع أفكار أي شخص حول ما إذا كان هذا يتحقق وكيفية المتابعة.

آمل عند تغيير اشتراك IAP ، استخدم عنوان URL في هذا المستند.
https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Subscriptions.html

تمكين المستخدمين من إدارة الاشتراكات ..
https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Subscriptions.html#//apple_ref/doc/uid/TP40008267 -CH7-SW19

هل سيعمل هذا على معالجة هذه المشكلة؟

آمل أن يتم التعامل مع هذه المشكلة بالطرق التي ذكرتها.
إغلاق...

لديك نفس السلوك ، أي خطوات لحل هذا؟

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات