0.3.10
Android
Harus dapat membeli kembali item sebanyak yang saya butuhkan karena saya hanya menguji
Kembali
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)
Beli item lebih dari sekali menggunakan akun pengujian
@ilyakar Apakah ini produk yang dapat dikonsumsi? Anda harus mengkonsumsi Item untuk membelinya kembali. Harap baca beberapa panduan tentang cara kerja IAP di android.
Hai @dooboolab , ini bukan produk yang dapat dikonsumsi. Pengguna memilikinya selamanya. Ada cara untuk memulihkan produk jadi sebaiknya beri tahu pengguna dalam produksi bahwa mereka tidak dapat membeli produk yang sama lagi karena mereka sudah membelinya. Tetapi untuk tujuan pengujian, sangat tidak nyaman harus menggunakan akun yang berbeda setiap kali semua pembelian telah dibeli.
Saya rasa saya tidak mengalami masalah ini di 0.2.17
@ilyakar Ah .. Maaf saya bingung. Sebenarnya, jika itu adalah produk non-consumable
, Anda sebenarnya tidak dapat membelinya kembali. Jika itu mungkin dalam 0.2.17
itu pasti bekerja dengan canggung .. Hanya produk habis pakai yang dapat membelinya kembali. Itu sama di kedua platform (ios dan android). Jika pengguna ingin memulihkan item, mereka harus melakukannya secara opsional tetapi seperti di LINK , itu tidak akan menagih pengguna lagi. Oleh karena itu, jika Anda merancang produk dalam aplikasi yang ingin Anda kenakan biaya kepada pengguna dengan membangun kembali, saya pikir Anda harus membuat produk consumable
.
@ilyakar Saya mendapat umpan balik dari teman pengembang saya dan dia juga menghadapi masalah yang sama. Oleh karena itu, saya menemukan solusi untuk menggunakan metode refreshItems
yang hanya terjadi pada android
. Anda dapat menggunakan ini di [email protected]
. Coba gunakan setelah metode prepare
. Teman saya menghadapi masalah ini karena dia tidak dapat menemukan token produk yang dibeli untuk dikonsumsi. Oleh karena itu, method
ini hanya untuk kemudahan Anda jika Anda tidak peduli dengan riwayat pembelian yang mengandalkan playstore
. Saat Anda memiliki backend sendiri yang mengumpulkan riwayat pembelian, ini akan membantu Anda menyelesaikan masalah. Saya harus melihat yang satu ini lebih sulit. Juga, mengikuti readme
akan membantu Anda. Terima kasih atas laporan Anda!
PS Saya pikir metode di atas akan bekerja pada produk non-consumable
juga. Juga artikel ini akan membantu Anda memahami apa yang akan menyelesaikan refeshItems
Anda.
Saya rasa ini sudah diselesaikan karena menurut saya IAP tidak berfungsi dengan Akun Uji
Dan solusi @dooboolab dari refreshItems
adalah caranya
Satu pertanyaan noob @dooboolab karena saya hanya menerapkan IAP sekali di Aplikasi Android tetapi tidak pernah mencoba jika berfungsi 😂
Bisakah kita membeli produk tanpa mengeluarkan uang seperti $ 0❓
Ya @ deadcoder0904 , itulah keseluruhan konsep akun uji Android (https://developer.android.com/google/play/billing/billing_testing.html). Yang berfungsi dengan baik dengan plugin, tetapi seperti yang saya tunjukkan, Anda tidak dapat melakukan pembelian yang sama dua kali.
@ilyakar Anda mengatakan bahwa itu masih tidak berfungsi. Apakah Anda mencoba menelepon refreshItems
setelah membeli produk? Seperti yang dijelaskan di sini , ini mungkin menyebabkan beberapa penundaan di playstore. Namun, Anda dapat memaksa mengkonsumsi produk tersebut untuk dapat membeli kembali. Saya juga ingin tahu mengapa ini berhasil .. Juga hati-hati jika Anda mengandalkan pembelian di riwayat google play dan tidak mengumpulkannya di backend Anda.
Hai @dooboolab , saya baru saja menanggapi @ deadcoder0904 dengan pengetahuan saya sebelumnya. Saya khawatir saya belum mencoba solusi Anda dan mungkin tidak akan untuk beberapa waktu karena ini bukan perbaikan yang mendesak. Tapi saya akan memberi tahu Anda di masa depan ketika saya punya.
@ilyakar hati-hati menggunakan refreshItems
karena akan menghabiskan semua produk yang telah dibeli pengguna. Anda hanya dapat menggunakannya jika Anda tidak peduli dengan informasi yang disimpan di playstore karena Anda memiliki server yang dimenangkan. Juga, masalah ini digunakan untuk terjadi seperti yang saya posting 13 hari yang lalu dari sini , jika pengguna telah mengembalikan item tersebut, pengguna tidak dapat membeli kembali item yang sama selama 24 jam.
Saya mengalami masalah yang sama dengan @ilyakar , dan menggunakan kode di bawah ini saya dapat menghapus pembelian yang tidak dapat dikonsumsi dan mengujinya lagi.
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 Solusi ini tidak bekerja sekarang.
consumeAllItemsAndroid
alih-alih consumeAllItems
.Output konsol adalah:
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
Di:
"react": "16.9.0",
"react-native": "0.61.3",
"react-native-iap": "^4.3.0",
@tulpn Sepertinya Anda tidak memasang modul kami dengan benar karena consumeAllItemsAndroid
seharusnya berfungsi dengan baik.
@hyochan Tidak bekerja untuk saya.
@ root-ai Versi apa yang Anda gunakan? Juga, harap mengacu pada kode yang kami berikan di example
juga.
Komentar yang paling membantu
Saya mengalami masalah yang sama dengan @ilyakar , dan menggunakan kode di bawah ini saya dapat menghapus pembelian yang tidak dapat dikonsumsi dan mengujinya lagi.