React-native-iap: لا يسمح بإعادة شراء عنصر Android في حساب الاختبار

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

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

0.3.10

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

ذكري المظهر

سلوك متوقع

يجب أن تكون قادرًا على إعادة شراء عنصر ما عدة مرات كما أحتاج لأنني مجرد اختبار

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

عائدات

Error: You already own this item.
    at createErrorFromErrorData (59522b9c-ca17-4e00-9e00-05cc989b1199:2016)
    at 59522b9c-ca17-4e00-9e00-05cc989b1199:1968
    at MessageQueue.__invokeCallback (59522b9c-ca17-4e00-9e00-05cc989b1199:2410)
    at 59522b9c-ca17-4e00-9e00-05cc989b1199:2155
    at MessageQueue.__guardSafe (59522b9c-ca17-4e00-9e00-05cc989b1199:2323)
    at MessageQueue.invokeCallbackAndReturnFlushedQueue (59522b9c-ca17-4e00-9e00-05cc989b1199:2154)
    at t (RNDebuggerWorker.js:1)

خطوات إعادة إصدار المخالف

قم بشراء عنصر أكثر من مرة باستخدام حساب اختباري

🙏 help wanted

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

كنت أواجه نفس المشكلة مثل ilyakar ، وباستخدام الرمز أدناه ، تمكنت من مسح عملية الشراء غير الاستهلاكية واختبارها مرة أخرى.


async componentDidMount() {
    const { itemSkus } = this.props;
    try {
      const result = await RNIap.initConnection()
      console.log('initiated connection?', result)
      const consumed = await RNIap.consumeAllItems();
      console.log('consumed all items?', consumed)
      let products = await RNIap.getProducts(itemSkus);
      console.log('loaded products', products)
    } catch (err) {
      console.warn(err);
    }
  };

ال 16 كومينتر

ilyakar هل هذا منتج استهلاكي؟ يجب أن تستهلك العنصر لإعادة شرائه. يرجى قراءة بعض الإرشادات حول كيفية عمل IAP في نظام Android.

مرحبًا dooboolab @ ، إنه ليس منتجًا

لا أعتقد أن لدي هذه المشكلة في 0.2.17

ilyakar آه .. آسف كنت في حيرة من non-consumable ، فلا يمكنك إعادة شرائه بالفعل. إذا كان ذلك ممكنًا في 0.2.17 فلا بد أنه يعمل بشكل محرج .. المنتجات الاستهلاكية فقط هي القادرة على إعادة شرائه. هو نفسه في كلا النظامين (iOS و android). إذا أراد المستخدم استعادة العنصر ، فعليه القيام بذلك اختياريًا ولكن كما هو الحال في LINK ، فلن يتم شحن المستخدم مرة أخرى. لذلك ، إذا كنت تصمم منتجات داخل التطبيق وتريد شحن المستخدمين من خلال إعادة البناء ، أعتقد أنه يجب عليك إنشاء منتج consumable .

ilyakar لقد تلقيت تعليقات من مطور صديقي وقد واجه أيضًا نفس المشكلة. لذلك ، توصلت إلى حل لاستخدام طريقة refreshItems التي تحدث فقط في android . يمكنك استخدام هذا في [email protected] . حاول استخدامه بعد طريقة prepare . كان صديقي يواجه هذه المشكلة لأنه لم يتمكن من العثور على رمز المنتج الذي تم شراؤه للاستهلاك. لذلك ، هذا method هذا فقط لراحتك إذا كنت لا تهتم بتاريخ المشتريات التي تعتمد على playstore . عندما يكون لديك خلفية خاصة بك تجمع سجل الشراء ، فسيساعدك ذلك في حل المشكلة. يجب أن ألقي نظرة على هذا علاوة على ذلك. أيضًا ، قد يساعدك اتباع readme . شكرا لك على التقرير الخاص بك!

ملاحظة: أعتقد أن الطريقة أعلاه ستعمل على منتج non-consumable أيضًا. ستساعدك هذه المقالة أيضًا على فهم ما يمكن أن يحله refeshItems .

أعتقد أن هذا قد تم حله بالفعل لأنني لا أعتقد أن IAP يعمل مع حساب الاختبار

وحلdooboolab refreshItems هو الطريق الصحيح

سؤال واحد noobdooboolab لأنني قمت بتطبيق IAP مرة واحدة فقط في تطبيق Android ولكني لم أحاول أبدًا ما إذا كان يعمل

هل يمكننا شراء منتج دون إنفاق أي أموال مثل $ 0❓

نعم @ deadcoder0904 ، هذا هو المفهوم الكامل لحسابات اختبار Android (https://developer.android.com/google/play/billing/billing_testing.html). التي تعمل بشكل جيد مع المكون الإضافي ، ولكن كما أشرت ، لا يمكنك إجراء نفس الشراء مرتين.

ilyakar أنت تقول إنه ما زال لا يعمل. هل حاولت الاتصال بـ refreshItems بعد شراء المنتج؟ كما هو موضح هنا ، قد يتسبب في بعض التأخير في playstore. ومع ذلك ، يمكنك إجبار استهلاك المنتج على إعادة الشراء مرة أخرى. أنا أشعر بالفضول أيضًا لماذا يعمل هذا على الرغم من .. احترس أيضًا إذا كنت تعتمد على عمليات الشراء في سجل google play وليس جمعها في الخلفية.

مرحبًا dooboolab ، كنت @ deadcoder0904 بمعرفتي السابقة. أخشى أنني لم أجرب الحل الذي قدمته وربما لن أجربه لبعض الوقت لأنه ليس حلاً عاجلاً. لكنني سأخبرك في المستقبل عندما يكون لدي.

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

كنت أواجه نفس المشكلة مثل ilyakar ، وباستخدام الرمز أدناه ، تمكنت من مسح عملية الشراء غير الاستهلاكية واختبارها مرة أخرى.


async componentDidMount() {
    const { itemSkus } = this.props;
    try {
      const result = await RNIap.initConnection()
      console.log('initiated connection?', result)
      const consumed = await RNIap.consumeAllItems();
      console.log('consumed all items?', consumed)
      let products = await RNIap.getProducts(itemSkus);
      console.log('loaded products', products)
    } catch (err) {
      console.warn(err);
    }
  };

TylerNoblett هذا الحل لا يعمل الآن.

  • حاولت باستخدام consumeAllItemsAndroid بدلاً من consumeAllItems .
    هو موضع تقدير أي مساعدة أخرى.

إخراج وحدة التحكم هو:

setUpDeveloperTools.js:73 TypeError: _reactNativeIap.default.consumeAllItems is not a function
    at loadPurchases$ (NewGameScreen.js:167)
    at tryCatch (runtime.js:45)
    at Generator.invoke [as _invoke] (runtime.js:271)
    at Generator.prototype.<computed> [as next] (runtime.js:97)
    at tryCatch (runtime.js:45)
    at invoke (runtime.js:135)
    at runtime.js:145
    at tryCallOne (core.js:37)
    at core.js:123
    at JSTimers.js:289

تشغيل:

    "react": "16.9.0",
    "react-native": "0.61.3",
    "react-native-iap": "^4.3.0",

tulpn يبدو أنك لم تثبت وحدتنا بشكل صحيح لأن consumeAllItemsAndroid يجب أن يعمل بشكل جيد

hyochan لم يعمل لي.

@ root-ai ما هو الإصدار الذي تستخدمه؟ يرجى أيضًا الإشارة إلى الكود الذي قدمناه بـ example أيضًا.

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