React-native-iap: [Android] ترجع getProducts دائمًا مصفوفة فارغة

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

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

0.3.15

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

ذكري المظهر

سلوك متوقع

احصل على جميع المنتجات

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

تعمل جميعها بشكل جيد على نظام iOS ولكن getProducts تعيد دائمًا مجموعة فارغة على نظام Android.
أعتقد أنها مشكلة تكوين ولكني اتبعت كل خطوة ...

تحميل APK مع إذن الفوترة / إعداد حساب التاجر / إنشاء في شراء التطبيق ...

🙏 help wanted

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

vadermemomartinberbesson مرحبا ~ هل يمكن أن تبادل شبيبة التعليمات البرمجية ل itemSkus ؟ هل قمت بإعداد مثل الرمز أدناه؟

export const PURCHASE_ITEMS = Platform.select({
  ios: [
    'productid_1',
    'productid_2',
  ],
  android: [
    'productid_1',
    'productid_2',
  ],
});

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

ال 19 كومينتر

نفس المشكلة هنا

مقتطفتي:

  RNIap.prepare().then(responsePrepare => {
    console.log("=============>responsePrepare:" + responsePrepare);
    RNIap.getProducts(itemSkus).then(response => {
        this.setState({ items  : response});
        console.log("=============>response:" + JSON.stringify(response));
    });
  });

ردي على adb.logcat (Android)

208 28473 28524 I ReactNativeJS: تشغيل التطبيق "testingIap" مع appParams: {"rootTag": 11}. __DEV__ === صحيح ، تحذير مستوى التطوير قيد التشغيل ، تحسينات الأداء متوقفة
04-25 17: 04: 04.228 1140 1150 I AccountManagerService: getTypesVisibleToCaller: هل مسموح به؟ صحيح
04-25 17: 04: 04.230 1140 2059 I AccountManagerService: getTypesVisibleToCaller: هل مسموح به؟ صحيح
04-25 17: 04: 04.232 24842 24933 I Finsky: [4061] com.google.android.finsky.billing.iab.ab.b (46): com.projectbundle: حساب من الحساب الأول - [uuAJBL1tLX2MAj69S-olEslXXXX]
04-25 17: 04: 04.233 28473 28473 D RNIap الوحدة: عميل الفوترة جاهز
04-25 17: 04: 04.303 28473 28524 I ReactNativeJS: =============> استجابة التحضير: لاغ
04-25 17: 04: 04.308 28473 28524 رد فعل أصلي: =============> استجابة التحضير: لاغ
04-25 17: 04: 04.328 1140 2107 I AccountManagerService: getTypesVisibleToCaller: هل مسموح به؟ صحيح
04-25 17: 04: 04.330 1140 1896 I AccountManagerService: getTypesVisibleToCaller: هل مسموح به؟ صحيح
04-25 17: 04: 04.339 1140 2095 I AccountManagerService: getTypesVisibleToCaller: هل مسموح به؟ صحيح
04-25 17: 04: 04.340 1140 1679 I AccountManagerService: getTypesVisibleToCaller: هل مسموح به؟ صحيح
04-25 17: 04: 04.343 24842 24854 I Finsky: [4020] com.google.android.finsky.billing.iab.ab.b (46): com.projectbundle: حساب من الحساب الأول - [uuAJBL1tLX2MAj69S-olEslXXXX]
04-25 17: 04: 04.347 24842 24853 I Finsky: [4019] com.google.android.finsky.billing.iab.ab.b (46): com.projectbundle: حساب من الحساب الأول - [uuAJBL1tLX2MAj69S-olEslXXXX]
04-25 17: 04: 04.626 28473 28525 D RNIap الوحدة: رمز الاستجابة: 0
04-25 17: 04: 04.628 28473 28525 D RNIap الوحدة: رمز الاستجابة: 0
04-25 17: 04: 04.669 28473 28524 I ReactNativeJS: =============> استجابة: []
04-25 17: 04: 04.693 28473 28524 I ReactNativeJS: =============> استجابة: []

ولكن مع iOS أحصل على المصفوفة بتنسيق datas well.

PD1 أحصل على التوصية من https://medium.com/@dooboolab/react -native-in-app-Purchase-121622d26b67

PD2 "ساعدني ، أوبي وان كينوبي ، أنت أملي الوحيد"

Package.json مقتطف:
"التبعيات": {
"رد فعل": "16.3.1"،
"تفاعل أصلي": "0.55.3"،
"رد فعل - أصلي - iap": "^ 0.3.18"
} ،

vadermemomartinberbesson مرحبا ~ هل يمكن أن تبادل شبيبة التعليمات البرمجية ل itemSkus ؟ هل قمت بإعداد مثل الرمز أدناه؟

export const PURCHASE_ITEMS = Platform.select({
  ios: [
    'productid_1',
    'productid_2',
  ],
  android: [
    'productid_1',
    'productid_2',
  ],
});

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

مرحبا dooboolab

هذه هي بياناتي
const itemSkus = Platform.select ({
iOS: [
"com.iap.cart"،
"com.iap.doublecoins"
] ،
ذكري المظهر: [
'مزدوج'،
"cart_1500"
] ،
}) ؛

تحياتي الحارة

PD1 تطبيقي في إصدار ألفا ، حتى لا تحصل على المنتجات.
PD2 مع npm أخرى ، مثل فواتير رد الفعل الأصلي ، يمكنني الحصول على المنتجات :(

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

أعتقد أنني بحاجة إلى إصدار ألفا ... تحميل apk بإذن إعداد الفواتير ليس كافيًا

dooboolab @ حسنًا ، إذا كان هناك شيء يساعدك ، فربما تكون النقطة التالية:

عندما أضع التكوين على رد فعل-أصلية-فوترة ، وضعت في ملف الموارد "string.xml" اسم سلسلة المعلمات = "RNB_GOOGLE_PLAY_LICENSE_KEY"
لكن في رد فعل-أصلية-آي أي بي لا يمكنني رؤية هذه المعلمة في العمل.

يلقي المحاولة التي طلبتها السجل التالي:

  1. تغيير العناصر الخاصة بي

const itemSkus = Platform.select ({
iOS: [
"Forecastorcart_1500" ،
] ،
ذكري المظهر: [
"Forecastorcart_1500" ،
"android.test.purchased" ،
"android.test.canceled" ،
"android.test.refunded" ،
"android.test.item_unavailable" ،
] ،
}) ؛

  1. تغيير على componentDidMount

    componentDidMount () {غير متزامن
    محاولة {
    انتظار RNIap.prepare () ؛
    انتظار this.getItems () ؛

    }
    قبض (يخطئ) {
    console.warn (err.code، err.message) ؛
    }
    }

  2. تغيير الحصول على البيانات

    getProductDetails = async () => {
    محاولة {
    منتجات const = انتظار RNIap.getProducts (itemSkus) ؛
    console.log ('=======> المنتجات ::::'، المنتجات) ؛
    this.setState ({productDetails: products})؛
    } catch (يخطئ) {
    console.warn (err.code، err.message) ؛
    }
    }

  3. ضع زر
    \

  4. ضع التطبيق على الجهاز
    رد فعل أصلي تشغيل أندرويد - متغير = إطلاق

6- أخيرًا السجل هو التالي:
04-26 12: 53: 11.335 16749 16759 I Finsky: [11707] com.google.android.finsky.billing.iab.ab.b (46): com.projectbundle: حساب من الحساب الأول - [uuAJBL1tLX2MAj69S-olEl331212]
04-26 12:53: 11.401 226 1177 فولت صوتي_الأساسي: do_output_standby in
04-26 12:53: 11.409 20362 20432 D RNIap الوحدة: رمز الاستجابة: 0
04-26 12:53: 11.426 226 1177 واط صوتي_الأساسي: do_output_standby.mode: 0
04-26 12:53: 11.426226 1177 فولت صوتي_الأساسي: إخراج_ وضع الاستعداد في الخارج
04-26 12: 53: 11.427 1140 2106 D PowerManagerService: releaseWakeLockInternal: lock = 87714678 [AudioMix] ، الإشارات = 0x0 ، total_time = 3166ms
04-26 12: 53: 11.444 20362 20431 I ReactNativeJS: '=======> المنتجات ::::'، [{description: 'Descripción de muestra para el producto: android.test.canceled.'،
04-26 12:53: 11.444 20362 20431 أنا ReactNativeJS: العنوان: "Título de muestra" ،
04-26 12: 53: 11.444 20362 20431 I ReactNativeJS: localized Price: '18.65 $' ،
04-26 12: 53: 11.444 20362 20431 I ReactNativeJS: type: 'inapp'،
04-26 12:53: 11.444 20362 20431 I ReactNativeJS: العملة: MXN ،
04-26 12:53: 11.444 20362 20431 I ReactNativeJS: السعر: '18 .65 '،
04-26 12:53: 11.444 20362 20431 I ReactNativeJS: productId: 'android.test.canceled'} ،
04-26 12: 53: 11.444 20362 20431 I ReactNativeJS: {description: 'Descripción de muestra para el producto: android.test.item_unavailable.'،
04-26 12:53: 11.444 20362 20431 أنا ReactNativeJS: العنوان: "Título de muestra" ،
04-26 12: 53: 11.444 20362 20431 I ReactNativeJS: localized Price: '18.65 $' ،
04-26 12: 53: 11.444 20362 20431 I ReactNativeJS: type: 'inapp'،
04-26 12:53: 11.444 20362 20431 I ReactNativeJS: العملة: MXN ،
04-26 12: 53: 11.444 20362 20431 I ReactNativeJS: السعر: '18 .65 '،
04-26 12: 53: 11.444 20362 20431 I ReactNativeJS: productId: 'android.test.item_unavailable'} ،
04-26 12: 53: 11.444 20362 20431 I ReactNativeJS: {description: 'Descripción de muestra para el producto: android.test.purchased.'،
04-26 12:53: 11.444 20362 20431 أنا ReactNativeJS: العنوان: "Título de muestra"
04-26 12: 53: 11.444 20362 20431 I ReactNativeJS: localized Price: '18.65 $' ،
04-26 12: 53: 11.444 20362 20431 I ReactNativeJS: type: 'inapp'،
04-26 12:53: 11.444 20362 20431 I ReactNativeJS: العملة: MXN ،
04-26 12:53: 11.444 20362 20431 I ReactNativeJS: السعر: '18 .65 '،
04-26 12:53: 11.444 20362 20431 I ReactNativeJS: productId: 'android.test.purchased'} ،
04-26 12: 53: 11.444 20362 20431 I ReactNativeJS: {description: 'Descripción de muestra para el producto: android.test.refunded.'،
04-26 12:53: 11.444 20362 20431 أنا ReactNativeJS: العنوان: "Título de muestra" ،
04-26 12: 53: 11.444 20362 20431 I ReactNativeJS: localized Price: '18.65 $' ،
04-26 12: 53: 11.444 20362 20431 I ReactNativeJS: type: 'inapp'،
04-26 12:53: 11.444 20362 20431 أنا ReactNativeJS: العملة: MXN ،
04-26 12:53: 11.444 20362 20431 I ReactNativeJS: السعر: '18 .65 '،
04-26 12: 53: 11.444 20362 20431 I ReactNativeJS: productId: 'android.test.refunded'}]

martinberbesson لدي تطبيق على إصدار ألفا ، حتى أنني لا أستطيع الحصول على المنتجات. أعتقد أنه شيء آخر ، ربما تكوين في رد فعل أصلي - iap أو وحدة تحكم جوجل.

martinberbessondooboolab لا تصدق !!

لقد أنشأت تطبيقًا آخر بنفس الخطوات ويعمل التطبيق على iOS و Android !!. لا أستطيع أن أصدق ذلك.

لا أعرف ما هو السبب ، لكنني أعتقد أنه تم تكوين شيء ما على الكود أو وحدة تحكم Google.

PD كنت أنتظر 5 ساعات للحصول على العنصر الصحيح Skus.
PD2 التطبيق القديم لا يحصل على itemsSkus حتى مع 24 ساعة.
PD3dooboolab الآن يمكنك النوم هادئة. :)
PD4 سأقوم بتطوير عملية الشراء ، وآمل أن يكون ذلك سهلاً

تحياتي الحارة،

vadermemo سعيد لأنه يعمل. أيضًا ، بالنسبة لوحدة iap الأحدث لنظام Android والتي هي v3 ، لا تحتاج إلى وضع أي شيء آخر في string.xml .

لكل # 124 أعتقد أن هذا لا يزال يحدث - على الأقل بالنسبة للتطبيقات الحالية التي سيكون من الجيد أن يكون لديك حل لهذا أيضًا.

بالنسبة لأي شخص لا يزال يواجه هذه المشكلة ، يجب عليك أولاً قراءة https://stackoverflow.com/a/35132936/1374827 والتأكد من استيفاء جميع المتطلبات الموضحة في هذا المنشور.

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

على نفس المنوال ، تأكد من أنك تتصل بـ RNIap.buySubscription إذا كنت تشتري اشتراكًا ، و RNIap.buyProduct إذا كنت تشتري منتجًا.

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

أنا أيضًا أحصل على مجموعة فارغة ،
وأنا في حيرة من أمري مع https://developer.android.com/google/play/billing/billing_testing#draft_apps doc ، فأنا بحاجة إلى حساب تجريبي وإضافة مُختبِر ، لذا من فضلك يمكن لأي شخص مساعدتي في ذلك.

شكرا!

نفسه

bharatidudhjiyatmjordan إذا كنتم تواجهون مشكلة في التكوين ، أود أن تجربوا مشروع android iap الخالص أولاً ومعرفة ما إذا كان يعمل بشكل صحيح. سيساعدك ذلك أيضًا على فهم أفضل لملفات Android iap sdk

hyochan شكرًا ، إنها فكرة جيدة. سأفعل ذلك

tmjordan هذا قديم جدًا ولكن هذا قد يساعدك في الإعداد الأساسي.

شكرا لك يا رجل hyochan

لقد حللت ذلك! أنا أستخدم هذه الإصدارات ،

react-native-iap: ^4.3.0
react-native: 0.60.5

فقط افعلها هكذا

const itemSkus = Platform.select({
    ios: [
        '100coins' // just remove bundle id from product id
    ],
    android: [
        '100coins' // just remove bundle id from product id
    ]
});

تأكد من أن لديك اسم الحزمة الصحيح لتطبيقك.

وفي حالة تغييره من أمر رد الفعل الأصلي. انها لا تزال تعمل.

عليك القيام بذلك يدويًا ثم تنظيف المشروع باستخدام ./gradlew clean في مجلد android.

بعد ذلك جربها.

ترميز سعيد.

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