React-native-iap: iOS: تم بالفعل شراء هذا الشراء داخل التطبيق.

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

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

"react-native-iap": "^2.0.3",

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

iOS

سلوك متوقع

يقوم بالشراء

شراء const = انتظار RNIap.buyProductWithoutFinishTransaction (productId)
const {transactionReceipt، PurchaseToken} = Purchase
sendToServer (transactionReceipt ، {
onSuccess: () => {
RNIap.finishTransaction ()
RNIap.consumeAllItems ()
}})

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

مربع الحوار: "تم شراء هذا الشراء داخل التطبيق بالفعل". هذا يحدث فقط لـ SKU واحد ، والبعض الآخر يعمل بشكل جيد. أعتقد أن التطبيق أصبح في حالة سيئة ولا أرى طريقة لإصلاحه. لقد تعبت من الاتصال بـ finishTransaction و consumeAllItems عند التهيئة ولكن ذلك لم يصلح الأمر. وحدات SKU أخرى يمكنني شراؤها عدة مرات دون مشكلة. لم يتم إرجاع أي شيء مقابل getPurchaseHistory .

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

الجهاز (وضع الحماية)

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

لست متأكد.

📱 iOS 🙏 help wanted

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

كنت أسمي هذا الرمز الأصلي.

عندما اتصلت به في didFinishLaunchingWithOptions currentQueue.transactions كان فارغًا ، لكن استدعائه في applicationDidBecomeActive نجح.

نجح هذا:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
  // take current payment queue
  SKPaymentQueue* currentQueue = [SKPaymentQueue defaultQueue];
  [currentQueue restoreCompletedTransactions];
  // finish ALL transactions in queue
  //  [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
  [currentQueue.transactions enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    [currentQueue finishTransaction:(SKPaymentTransaction *)obj];
  }]; 
}

لست متأكدا كيف ولكن ربما يمكننا كشف هذه الوظيفة في المكتبة؟

ال 16 كومينتر

siderakis نعم غريب. لقد قمت بالفعل بتصحيح هذه المشكلة كما قيل في stackoverflow ولكن لا يزال يحدث في بعض الأجهزة. أنا على استعداد لإصلاح هذا أيضًا. ما الجهاز الذي تستخدمه؟

siderakis قد يؤدي هذا إلى حل تطبيقك في حالة سيئة على ما أعتقد. هل يمكنك المحاولة؟

لقد جربته ولم ينجح. لقد أعدت أيضًا تثبيت التطبيق ولم يساعد ذلك. إنه يعمل على جهاز iPad.

قمت بتعيين نقطة توقف ويبدو أن معاملات CurrentQueue.transactions فارغة

من SKPaymentQueue.h

// Array of unfinished SKPaymentTransactions.  Only valid while the queue has observers.  Updated asynchronously.
@property(nonatomic, readonly) NSArray<SKPaymentTransaction *> *transactions NS_AVAILABLE_IOS(3_0);

<strong i="6">@end</strong>

ربما اتصلت به في وقت مبكر جدا

لقد اتصلت بالكود لاحقًا في تنفيذ البرامج وقام بإصلاح المشكلة.

siderakis آسف
المصفوفة transactions هي خاصية وليست طريقة ، وهي ليست في الكود الخاص بنا.
هل تقصد finishTransaction ؟

كنت أسمي هذا الرمز الأصلي.

عندما اتصلت به في didFinishLaunchingWithOptions currentQueue.transactions كان فارغًا ، لكن استدعائه في applicationDidBecomeActive نجح.

نجح هذا:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
  // take current payment queue
  SKPaymentQueue* currentQueue = [SKPaymentQueue defaultQueue];
  [currentQueue restoreCompletedTransactions];
  // finish ALL transactions in queue
  //  [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
  [currentQueue.transactions enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    [currentQueue finishTransaction:(SKPaymentTransaction *)obj];
  }]; 
}

لست متأكدا كيف ولكن ربما يمكننا كشف هذه الوظيفة في المكتبة؟

siderakis نعم. هذا ما قصدته في الإصدار رقم 259.
أعتقد أن الإجراء يمكن أن يكون في أي مكان بعد التطبيقDidBecomeActive.
لذلك ، سأعرض هذه الطريقة إلى جانب JS ، يمكن لهذا المستخدم تسميتها في أي وقت.
شكرا لك على نصيحتك.

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

sivrihuseyin المشكلة معروفة الآن. سوف نجعل التصحيح في نهاية هذا الأسبوع. شكرا لجميع المصدرين.

لقد أصدرنا الحل المتوقع في 2.2.0 . هل يمكنك متابعة الملف التمهيدي وتجربة هذا السطر من الرموز؟

مرحبا هيو تشان ،

شكرا على المعلومه.

لقد قمت بتثبيت الإصدار 2.2.0 وجربت الكود. لسوء الحظ، ال
لم يتم إصلاح المشكلة بعد. أعتقد أن الوظيفة * clearTransaction * لم تفعل
تم تصديرها. في البيئة الأصلية لا توجد معاملات واضحة
تعمل داخل RNIap.

راجعت ملف index.d.ts ولم أتمكن من رؤية الوظيفة باسم
clearTransaction في هذا. ملف.

أطيب التحيات،

حسين

يوم الأحد ، 16 سبتمبر 2018 الساعة 2:25 مساءً Hyo Chan Jang [email protected]
كتب:

مغلق # 257 https://github.com/dooboolab/react-native-iap/issues/257
عبر a5f225d
https://github.com/dooboolab/react-native-iap/commit/a5f225d470af0a85417325d24357667e54aa7078
.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/dooboolab/react-native-iap/issues/257#event-1848183078 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AiH7bOp96EzsoX82UVxKHK2LkN7PNWVAks5ubjUogaJpZM4WmG_0
.

مرحبا هيو تشان ،

أنا آسف للمعلومات الخاطئة. تم إصلاحها. لا توجد مشكلة
أي أكثر من ذلك.

شكرا لك على استجابتك السريعة والحل الرائع.

أطيب التحيات،

حسين

يوم الأحد 16 سبتمبر 2018 الساعة 2:56 مساءً حسين سيفري [email protected]
كتب:

مرحبا هيو تشان ،

شكرا على المعلومه.

لقد قمت بتثبيت الإصدار 2.2.0 وجربت الكود. لسوء الحظ، ال
لم يتم إصلاح المشكلة بعد. أعتقد أن الوظيفة * clearTransaction * لها
لم يتم تصديرها. في البيئة الأصلية لا توجد معاملات واضحة
تعمل داخل RNIap.

راجعت ملف index.d.ts ولم أتمكن من رؤية الوظيفة باسم
clearTransaction في هذا. ملف.

أطيب التحيات،

حسين

يوم الأحد ، 16 سبتمبر 2018 الساعة 2:25 مساءً Hyo Chan Jang [email protected]
كتب:

مغلق # 257 https://github.com/dooboolab/react-native-iap/issues/257
عبر a5f225d
https://github.com/dooboolab/react-native-iap/commit/a5f225d470af0a85417325d24357667e54aa7078
.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/dooboolab/react-native-iap/issues/257#event-1848183078 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AiH7bOp96EzsoX82UVxKHK2LkN7PNWVAks5ubjUogaJpZM4WmG_0
.

تم إصلاحه مع الإصدار 2.2.0 من خلال تطبيق وظيفة clearTransaction. شكرا لك
تضمين التغريدة

بالنسبة إلى موظفي Google في المستقبل الذين يقومون بالترقية من الإصدار 2 إلى الإصدار 3-5 ، وجدت هذا مفيدًا

https://github.com/dooboolab/react-native-iap/blob/de0fc084966fc4d36a9c45f4e27cb166243d4319/README_DEPRECATED.md

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