Ich bin nicht speziell darauf aus, die Möglichkeit zu haben, einem Benutzer einen In-App-Kauf eines Verbrauchsmaterials zu erstatten, sondern nur in dem einen oder anderen Fall, dass ein Nutzer eine Rückerstattung verlangt, entweder über Google oder über den Entwickler eines in App-Kauf eines Verbrauchsmaterials.
Es scheint keine Möglichkeit zu geben, Rückerstattungen über die In App Billing API V3 zu behandeln. Die gesamte Dokumentation verweist mit Sendern auf V2 der api. Das hilft mir nicht im Geringsten.
Wie werden die Rückerstattungen in der In App Billing v3 API gehandhabt? Ich gehe davon aus, dass die Rückerstattung für ein nicht konsumierbares Produkt verarbeitet wird, und dann verarbeitet google die Verarbeitung über ihr Backend. Wenn dann getPurchaseState () ausgeführt wird, wird ein Wert von 2 (rückerstattet) zurückgegeben. Wenn dies der Fall ist, funktioniert dies hervorragend für ein nicht konsumierbares Produkt.
Wenn ein getPurchaseState () -Aufruf für einen Verbrauchsartikel-Kauf getätigt wird, wird null zurückgegeben. Dies setzt voraus, dass der Kauf zuvor erfolgreich war und dass der Artikel verbraucht und bereitgestellt wurde. Ich denke, ich könnte die Kaufartikel lokal in der App speichern, aber dann gibt es immer noch keine Möglichkeit, eine Rückerstattungsbenachrichtigung für dieses Produkt zu erhalten. Ich kann nach Kaufstatus suchen, aber es wird wieder Null zurückgegeben, solange es bereits verbraucht und bereitgestellt wurde.
Eine leichte Problemumgehung, an die ich jetzt denken kann, ist, den Kauf nicht mit Provisioning zu konsumieren. So bleibt es laut Google "unverbrauchter" und bleibt in ihrer Datenbank. Wenn nun eine Rückerstattung angefordert wird, gehe ich davon aus, dass ein Aufruf von getPurchaseState () für dieses Verbrauchsmaterial zurückerstattet wird, sodass die Anwendungslogik das bereitgestellte Verbrauchsmaterial vom Inventar des Benutzers subtrahieren bzw. abziehen kann. Wenn ein Benutzer dieses Verbrauchsmaterial erneut kaufen möchte, bevor der IAB api-Aufruf für den Kauf getätigt wird, holen Sie sich den purchaseState () und / oder hasPurchase (), und wenn dort bereits ein Kauf stattfindet, konsumieren Sie diesen Artikel ohne Bereitstellung, Dadurch kann der Benutzer dieses Verbrauchsmaterial zurückkaufen. Wenn ein Benutzer dasselbe Verbrauchsmaterial erneut kaufen möchte, muss die Option zum erneuten Kauf ausgewählt werden, unabhängig davon, ob das Produkt erfolgreich zurückgekauft wird oder nicht. Wenn also der Benutzer den Kauf nicht abschließt, wird das Produkt bereits verbraucht, und ich lande wieder dort, wo ich jetzt bin, und kann nicht nach dem Rückerstattungsstatus des Verbrauchsmaterials suchen.
Ich kann mir keine andere Möglichkeit vorstellen, eine Rückvergütung für ein Verbrauchsartikel-in-App-Produkt zu leisten, und das frage ich hier. Ist die Art und Weise, wie ich dachte, ausreichend, oder gibt es einen angemessenen Weg, Rückerstattungen mit IAP v3 auf Verbrauchsmaterialien zu behandeln? Ich dachte, ich hätte 3 Möglichkeiten:
Tags und Links android in-app-billing