2016-05-04 7 views
0

Wir haben vor kurzem die App, die nur konsumierbare In-App-Käufe hat gestartet. Wir haben viele gefälschte Einkäufe bemerkt - Einkäufe mit ungültigen Quittungen und auch "gültige" Quittungen, aber das Array "in_app" in der Validierungsantwort von Apple ist ein leeres Array. Ich muss wissen, wie Benutzer solche "gültigen" Quittungen bilden? Ist es der Empfang des App-Downloads und nicht der In-App-Kauf oder was? Ich übergebe nun die folgende Überprüfung zur Validierung. Extrahieren Sie das "in_app" -Feld in der json-Antwort von Apple. Wenn es nicht leer ist, überprüfen Sie, ob die Produkt-ID übereinstimmt oder nicht. Ich muss wissen, ob diese Überprüfung genug ist, oder sie ist eine bessere idiotensichere Kontrolle.Consumable in App Käufe Validierung

Antwort

0

Alle Apps haben eine Quittung. Diejenigen Apps, die ein IAP erworben haben, haben ein in_app-Feld in ihrem Empfang. Ihre Benutzer drängen einen gefälschten Anruf in ihre updatedTransaction-Methode und Sie greifen ihre Quittung (ohne IAP, weil sie keinen Kauf getätigt haben) und senden sie an Ihren Server. Andere Benutzer können einige Quittungen von irgendwo austauschen (z. B. tätigt einer von 30 Dieben einen Kauf und entnimmt diesen gültigen Quittung und sendet ihn an ihre 29 Co-Diebe). Wenn sie diesen Beleg in ihr Gerät stecken und dann einen Anruf an updatedTransactions senden, erhält Ihr Server den jetzt gültigen, aber doppelten Beleg. Ihr Server muss das Empfangsdatum überprüfen und feststellen, dass es älter als neu ist oder sogar älter als die paymentRequest, die Sie an Ihren Server senden müssten. (Es ist besser, auf dem Gerät zu dekodieren - viel sicherer)

*** Sie konnten Transaktions-ID für eine doppelte Transaktions-ID überprüfen. Leider können Sie das nicht mehr tun, da eine restoreCompletedTransaction dieselbe transaction_id wie der ursprüngliche Kauf zurückgibt. Ich habe Apple davon erzählt und sie haben mich ignoriert.

+1

Ich habe gerade festgestellt, dass Sie für ein Verbrauchsmaterial eine doppelte transaction_id überprüfen und ablehnen können. –

+0

Danke. Ich habe festgestellt, dass "original_transaction_id" die Wette ist. –

+0

@ PeterB.Kramer Wie können Sie feststellen, welche Transaktion mit dem aktuellen Kauf verknüpft ist, wenn der große einheitliche Beleg die gesamte Kaufhistorie des Benutzers enthält? – Learn2Code

Verwandte Themen