0.3.10
ذكري المظهر
يجب أن تكون قادرًا على إعادة شراء عنصر ما عدة مرات كما أحتاج لأنني مجرد اختبار
عائدات
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)
قم بشراء عنصر أكثر من مرة باستخدام حساب اختباري
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
أيضًا.
التعليق الأكثر فائدة
كنت أواجه نفس المشكلة مثل ilyakar ، وباستخدام الرمز أدناه ، تمكنت من مسح عملية الشراء غير الاستهلاكية واختبارها مرة أخرى.