2016-07-05 19 views
0

Ich habe Probleme mit dem plattformübergreifenden Google Play InApp-Kaufservice von Unity. Ich gebe den folgenden Link an, aus dem ich meine Implementierung übernommen habe.Unity Cross Platform InApp-Kaufservice

https://docs.unity3d.com/Manual/UnityIAPProcessingPurchases.html

Das Problem ist:

public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args) {} 

Diese Methode jedes Mal aufgerufen wird. Jedes Mal, was ich meine, ist, auch wenn es keine Internetverbindung gibt, diese Funktion aufgerufen und PurchaseProcessingResult.Complete zurückgegeben. Ich frage mich und keine Ahnung, wo ich die gesperrten Gegenstände nach dem erfolgreichen Kauf entsperren sollte. Wenn diese Funktion auch dann aufgerufen wird, wenn keine Verbindung besteht, weiß ich nicht, was ich sagen soll ... In der Demo habe ich die Entsperrlogik in dieser speziellen Methode nach der Überprüfung der Produkt-ID gesehen.

Könnte mir jemand die richtige Implementierung mit Bestätigung des Eingangs für Google Play leiten. Ich habe die gleiche Logik in Apple getestet, und es scheint gut zu funktionieren.

Das Problem ist mit dem Google Store. Bitte jemanden leiten Sie für die richtige Umsetzung.

Ich folge der gleichen Implementierung, was in diesem Link vorgeschlagen: https://unity3d.com/learn/tutorials/topics/analytics/integrating-unity-iap-your-game Werfen Sie einen Blick auf den beigefügten Screenshot. Sie können google native inapp anzeigen und gleichzeitig die onPurchaseFailed-Funktion aufrufen. So zeige ich den Kauffehler-Dialog. Sie können dies in Aktion hinter Google native Inapp-Dialog sehen. Und gleichzeitig wird auch ProcessPurchase aufgerufen.

BTW, dieses Verhalten ist zufällig. 70% der Zeit, bekomme ich Google inapp native Popup und Transaktion ist die meiste Zeit erfolgreich. Es funktioniert wie erwartet die meiste Zeit. Aber auch ProcessPurchase und OnPurchaseFailed werden gelegentlich aufgerufen. Dieses zufällige Verhalten deutet darauf hin, dass im IAP-Modul von Unity etwas nicht stimmen muss oder dass sein Verhalten in allen Android-Geräten nicht konsistent ist. Verwechseln Sie nicht den Fehler bei der Verifizierung von Google-Konten im nativen Dialog. Es ist der gleiche Fall mit meinen anderen gültigen Konten auch ....

enter image description here

+1

Unity verwendet einen zentralen Handler, um IAP in jeder Plattform zu verwalten. Wenn dein iOS-Code funktioniert, sollte er auch in Android funktionieren. Die Qualität der Frage ist jedoch sehr schlecht. Sie sollten Code oder Bilder hinzufügen, damit wir Ihnen helfen können ... Folgen Sie diesem Tutorial -> https://www.youtube.com/watch?v=GLmwpz5JAwY – Cabrra

+0

Hallo Cabrra, habe meine Frage aktualisiert. Ich habe dort keinen Code gespeichert, weil ich den Link, den ich dort eingefügt habe, kopiert habe.Sie können einen Blick auf den Screenshot und meine Kommentare werfen, die in der ursprünglichen Frage – Kenshin

+0

hinzugefügt wurden, und wenn es auftritt, ist dies die Nachricht "PurchaseFailureReason.ExistingPurchasePending" – Kenshin

Antwort

0

Schließlich ich Antwort auf meine eigene Frage ... Ich

gefunden zweimal gleichzeitig inapp Kauf Anruf wurde ausgelöst wird.

In der Einheit legte ich versehentlich einen Knopf unter dem anderen. Es war derjenige, der den IAP-Anruf zweimal auslöst ... Nach dem Entfernen fing alles gut an ...

Ich habe ein anderes Problem, von 8 NICHT VERBRAUCHSMATERIAL und 4 VERBRAUCHSMATERIALIEN, zwei Verbrauchsmaterialien fungieren als nicht Verbrauchsmaterialien. ... Irgendeine Idee ???

Aktualisierung: Diese 2 Artikel wurden als Verbrauchsmaterialien deklariert und zu einem Einkauf gemacht, bevor sie zu Verbrauchsmaterialien geändert wurden. Dies war der Grund für dieses ungewöhnliche Verhalten. Jetzt funktioniert alles gut.