0.3.10
Android
Sollte in der Lage sein, einen Artikel so oft neu zu kaufen, wie ich brauche, da ich nur teste
Kehrt zurück
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)
Kaufen Sie einen Artikel mehrmals über ein Testkonto
@ilyakar Ist das ein Verbrauchsmaterial? Sie solltenItem verbrauchen, um es neu zu kaufen. Bitte lesen Sie einige Anleitungen zur Funktionsweise von IAP in Android.
Hallo @dooboolab , es ist kein Verbrauchsmaterial. Benutzer haben es für immer. Es gibt eine Möglichkeit, das Produkt wiederherzustellen. Es ist daher gut, den Benutzern in der Produktion mitzuteilen, dass sie nicht dasselbe Produkt erneut kaufen können, da sie es bereits gekauft haben. Zu Testzwecken ist es jedoch sehr unangenehm, jedes Mal, wenn alle Einkäufe gekauft wurden, ein anderes Konto verwenden zu müssen.
Ich glaube nicht, dass ich dieses Problem in 0.2.17 hatte
@ilyakar Ah .. Entschuldigung, ich war verwirrt. Wenn es sich um ein non-consumable
-Produkt handelt, können Sie es nicht erneut kaufen. Wenn dies in 0.2.17
, muss dies umständlich funktionieren. Nur Verbrauchsmaterialien können es neu kaufen. Es ist auf beiden Plattformen (iOS und Android) gleich. Wenn der Benutzer das Element wiederherstellen möchte, muss er dies optional tun, aber wie in LINK wird der Benutzer nicht erneut belastet. Wenn Sie In-App-Produkte entwerfen, die Sie Benutzern durch erneutes Kaufen in Rechnung stellen möchten, sollten Sie daher ein consumable
-Produkt erstellen.
@ilyakar Ich habe Feedback von meinem Freund Entwickler und er hatte auch das gleiche Problem. Aus diesem Grund habe ich eine Lösung für die Verwendung der Methode refreshItems
, die nur in android
. Sie können dies in [email protected]
. Versuchen Sie es nach der Methode prepare
. Mein Freund war mit diesem Problem konfrontiert, weil er das Token des gekauften Produkts zum Konsumieren nicht finden konnte. Daher ist dieses method
nur zu Ihrer Erleichterung, wenn Sie sich nicht für die Historie der Einkäufe interessieren, die auf playstore
beruhen. Wenn Sie über ein eigenes Backend verfügen, das die Kaufhistorie erfasst, können Sie das Problem leichter lösen. Ich muss mir diesen noch schwieriger ansehen. Außerdem würde es Ihnen helfen, den readme
folgen. Vielen Dank für Ihren Bericht!
PS Ich denke, die obige Methode funktioniert auch bei non-consumable
Produkten. Auch dieser Artikel hilft Ihnen zu verstehen, was refeshItems
Sie lösen würde.
Ich denke, dies ist bereits gelöst, da ich nicht glaube, dass IAP mit Test Account funktioniert
Und @dooboolabs Lösung von refreshItems
ist der richtige Weg
Eine Noob-Frage @dooboolab, da ich IAP nur einmal in einer Android-App implementiert habe, aber nie versucht habe, ob es funktioniert 😂
Können wir ein Produkt kaufen, ohne Geld wie 0 $ auszugeben?
Ja @ deadcoder0904 , das ist das gesamte Konzept von Android-Testkonten (https://developer.android.com/google/play/billing/billing_testing.html). Was mit dem Plugin gut funktioniert, aber wie ich bereits erwähnt habe, können Sie nicht zweimal denselben Kauf tätigen.
@ilyakar Du sagst, dass es immer noch nicht funktioniert. Haben Sie versucht, nach dem Kauf des Produkts refreshItems
anzurufen? Wie in beschrieben hier kann es eine gewisse Verzögerung in Plays verursachen. Sie können jedoch den Verbrauch des Produkts erzwingen, um es erneut kaufen zu können. Ich bin auch neugierig, warum dies funktioniert. Achten Sie auch darauf, ob Sie sich auf Einkäufe im Google Play-Verlauf verlassen und diese nicht in Ihrem Backend sammeln.
Hallo @dooboolab , ich habe gerade mit meinem Vorwissen auf @ deadcoder0904 geantwortet . Ich fürchte, ich habe Ihre Lösung nicht ausprobiert und werde es wahrscheinlich einige Zeit nicht tun, da dies keine dringende Lösung ist. Aber ich werde Sie in Zukunft wissen lassen, wenn ich habe.
@ilyakar Vorsicht bei der Verwendung von refreshItems
da alle vom Benutzer gekauften Produkte verbraucht werden. Sie können es nur verwenden, wenn Sie sich nicht für die im Playstore gespeicherten Informationen interessieren, da Sie Ihren Won-Server haben. Dieses Problem tritt auch auf, wie ich es vor 13 Tagen von hier aus gepostet habe. Wenn der Benutzer den Artikel erstattet hat, kann es sein, dass er denselben Artikel 24 Stunden lang nicht erneut kauft.
Ich hatte das gleiche Problem wie @ilyakar und konnte mit dem folgenden Code den nicht verbrauchbaren Kauf löschen und erneut testen.
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 Diese Lösung funktioniert
consumeAllItemsAndroid
anstelle von consumeAllItems
versucht.Die Konsolenausgabe lautet:
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
Auf:
"react": "16.9.0",
"react-native": "0.61.3",
"react-native-iap": "^4.3.0",
@tulpn Sieht so aus, als hätten Sie unser Modul nicht richtig installiert, da consumeAllItemsAndroid
einwandfrei funktionieren sollte.
@ Hyochan Hat bei mir nicht funktioniert.
@ root-ai Welche Version verwendest du? Bitte beziehen Sie sich auch auf den Code, den wir auch in example
haben.
Hilfreichster Kommentar
Ich hatte das gleiche Problem wie @ilyakar und konnte mit dem folgenden Code den nicht verbrauchbaren Kauf löschen und erneut testen.