"react-native-iap": "^ 4.5.3"
"React-Native": "0,62.0"
iOS (noch nicht auf Android getestet)
purchaseUpdatedListener sollte nur so oft aufgerufen werden, wie die Komponente bereitgestellt wurde
purchaseUpdatedListener wurde in ein paar Sekunden 20 Mal aufgerufen, und wenn ich die App öffne, wird sie mehrmals aufgerufen
Echtes Gerät, Sandbox env
Befolgen Sie die Anweisungen auf der Hauptseite
Derzeit ist purchaseUpdatedListener in componentDidMount () an einen Listener angehängt. Wenn ich meine App öffne, wird sie manchmal mehrmals ausgelöst. Dies geschieht auf txns, auf denen ich finishTransaction aufgerufen habe. Sieht jemand so etwas?
Das gleiche gilt für mich, aber ich rufe den Kauffluss in Aktion auf
const { productId } = args
purchaseUpdatedListener(async (purchase) => {
if (!purchase.transactionReceipt) {
Alert("Error")
}
...
})
purchaseErrorListener(error => {
...
})
await requestPurchase(productId, false)
Ich habe 4 Testprodukte und erhalte 4 Mal purchaseUpdatedListener
, aber der Kauf wurde nur für eines von ihnen angefordert
Versucht, diese Transaktionen zu beenden, aber immer noch mehrere Anrufe
Ist der Artikel eine automatische Verlängerung? Ich denke, was passiert ist, weil es in der Sandbox ist. Die Verlängerungsdauer beträgt nur 5 Minuten für mein monatliches Abonnement. Apple sendet also bei jeder Erneuerung ein Ereignis. Wenn die App also 10 Minuten lang geschlossen wurde, sind dies 2 Benachrichtigungen, die ich beim Öffnen der App erhalte.
Kann jemand bestätigen, dass dies das erwartete Verhalten ist, um Benachrichtigungen bei einer automatischen Verlängerung und nicht nur beim Kauf zu erhalten?
Mein Kauf ist einmalig verbrauchbar
Hier gilt das gleiche. Bei jedem Ereignis der automatischen Verlängerung erhalte ich das eigentliche Abonnement für die automatische Verlängerung und einige Sekunden später erhalte ich einen großen Teil von 135 Kaufobjekten von purchaseUpdatedListener
. Ich denke, dies ist meine gesamte Kaufhistorie. Ich habe versucht, sowohl finishTransaction
als auch finishTransactionIOS
aufzurufen, um die Transaktionen zu konsumieren, aber es ändert nichts.
Beim nächsten Ereignis der automatischen Verlängerung nimmt dieser große Teil der Transaktionen zu (136, 137, ...). Die Transaktionen sind nur meine Subs für die automatische Verlängerung. Keines meiner Verbrauchs- / Nichtverbrauchsprodukte wird in der Liste angezeigt.
Hier bestätige ich, dass der Hörer genauso oft angerufen wird wie die Anzahl der Käufe in der Kaufhistorie.
Ich habe ein Problem. Dies geschieht nur, wenn das Abonnement aktiviert ist.
Ich hatte eine ähnliche Erfahrung mit iOS 14.
Meine App verkauft ein Abonnement für die automatische Verlängerung.
Ich denke, dieses Problem ist aufgetreten, seit ich das gleiche Abonnement erneut gekauft habe.
Der folgende Link kann für dieses Problem relevant sein.
https://developer.apple.com/forums/thread/659529
Schauen Sie sich diesen Beitrag an
Das Problem ist, dass finishTransaction und finishTransactionIOS jetzt nicht für iOS funktionieren. Diese geben immer undefiniert zurück, sodass Sie die Transaktion nicht beenden können und sie in der ausstehenden Transaktion stecken bleiben. Wenn Sie Ihre App öffnen, werden ALLE ausstehenden Transaktionen in purchaseUpdatedListener verarbeitet. Deshalb haben Sie mehr als 20 Mal erhalten.
: (((jemand repariert dieses Problem)
Schauen Sie sich diesen Beitrag an
Das Problem ist, dass finishTransaction und finishTransactionIOS jetzt nicht für iOS funktionieren. Diese geben immer undefiniert zurück, sodass Sie die Transaktion nicht beenden können und sie in der ausstehenden Transaktion stecken bleiben. Wenn Sie Ihre App öffnen, werden ALLE ausstehenden Transaktionen in purchaseUpdatedListener verarbeitet. Deshalb haben Sie mehr als 20 Mal erhalten.
: (((jemand repariert dieses Problem)
https://github.com/dooboolab/react-native-iap/issues/1160#issuecomment -716525603
Ich habe hier eine Antwort gepostet und es wird erwartet, dass finishTransaction
das Versprechen nicht löst.
Wir müssen überprüfen, ob die Transaktion tatsächlich abgeschlossen ist, indem wir das Protokoll in die Seite iOS
einfügen und prüfen, ob eine Anweisung if
eingegeben wird.
Ich sehe dasselbe wie hier erwähnt: https://github.com/dooboolab/react-native-iap/issues/1172#issuecomment -721676878.
Hilfreichster Kommentar
Hier gilt das gleiche. Bei jedem Ereignis der automatischen Verlängerung erhalte ich das eigentliche Abonnement für die automatische Verlängerung und einige Sekunden später erhalte ich einen großen Teil von 135 Kaufobjekten von
purchaseUpdatedListener
. Ich denke, dies ist meine gesamte Kaufhistorie. Ich habe versucht, sowohlfinishTransaction
als auchfinishTransactionIOS
aufzurufen, um die Transaktionen zu konsumieren, aber es ändert nichts.Beim nächsten Ereignis der automatischen Verlängerung nimmt dieser große Teil der Transaktionen zu (136, 137, ...). Die Transaktionen sind nur meine Subs für die automatische Verlängerung. Keines meiner Verbrauchs- / Nichtverbrauchsprodukte wird in der Liste angezeigt.