Wie kann ich unter Verwendung von Java (Servlet) signierte Daten von In-App Billing Android Market überprüfen?

9

Bei der Implementierung der In-App-Abrechnung für Android-Anwendungen bin ich auf ein Problem gestoßen.

Lassen Sie mich das Szenario zuerst erklären Wir haben einen Content-Server (Datenserver), der die Produktliste enthält.
Wenn der Benutzer einen aus der Liste auswählt, kann er ihn kaufen.
Die Kauflogik läuft perfekt, nachdem ich meine Kreditkartendetails mit meinem Testkonto eingegeben habe.
In Rücksendungen bekomme ich eine signierte Daten in Android-Gerät.

Meine Frage ist eine Frage 1. Muss ich die signierten Daten im Android-Gerät überprüfen und dann einige Informationen oder Daten an den Content-Server senden, der im Gegenzug das Produkt sendet (ich denke, das kann nicht gut sein, da es keine gibt Flow auf der Server-Seite, um zu überprüfen, ob die Anfrage gültig ist oder nicht oder genauer gesagt, dass die Signaturdaten vom Google-Markt generiert werden oder nicht )?
2. Wenn ich die Daten serverseitig verifizieren muss, wie kann ich das tun? Muss ich es an Google-Markt senden (wenn ja, mit welchem ​​Webservice oder API)?

Bitte helfen Sie mir, dies zu korrigieren.
Vielen Dank im Voraus.

    
Naved 03.11.2011, 13:47
quelle

2 Antworten

3

Für Ihre zweite Frage, Hash (zB: MD5, SHA) die Daten und senden Sie den Hash zusammen mit den Daten an den Server. Erstellen Sie auf dem Server einen Hash der Daten und vergleichen Sie die Hashes, um sie zu überprüfen.

    
yogiam 09.11.2011, 11:42
quelle
2

Um Ihre Fragen zu beantworten, müssen Sie zunächst das In-App-Produkt mit einer Art ID erstellen, die ich dann in eine Datenbank auf Ihrem Server einbinden würde. Mit Webservices fragen Sie dann Ihre Datenbank ab und sehen, ob die In-App-ID mit der ID in Ihrer Produktdatenbank übereinstimmt. Darüber hinaus können Sie die Sicherheit Nonces und Signaturen zur Überprüfung verwenden. Meistens lässt du Google mit den Produkten umgehen und musst die In-App-Produkte nach deiner DB modellieren. Wenn Sie zu viele Produkte haben, dann müssen Sie damit eine Standardmethode zum Erstellen einer mobilen Website bewältigen ....

BEARBEITEN: Nun, wenn Sie die Anfrage stellen, d. H. Kaufen, tun Sie zuerst die REQUEST_PURCHASE, dann starten Sie den PendingIntent, der vom Market zurückgegeben wird. Dann kümmerst du dich um die Abstimmungsabsichten, die von Market gesendet werden. Sie geben vier Schlüssel in der Anfrage an und machen dann eine Kaufanfrage:

%Vor%

Dann müssen Sie den PendingIntent verwenden, um das checkoutUI zu starten (Vorsicht bei den 1.6 bis 2.0 Unterschieden, wobei 1.6 erfordert, dass dieses getrennt von der Aktivität gestartet wird). Sehen Sie sich den PurchaseObserver.java in den Google-Beispielen an.

"Die Android Market-Anwendung sendet einen RESPONSE_CODE-Broadcast Intent, der Fehlerinformationen über die Anforderung bereitstellt. Wenn die Anforderung keinen Fehler generiert, gibt der Broadcast-Intent RESPONSE_CODE RESULT_OK zurück, der angibt, dass die Anforderung erfolgreich gesendet wurde Eine RESULT_OK-Antwort gibt nicht an, dass der angeforderte Kauf erfolgreich war, und zeigt an, dass die Anforderung erfolgreich an Android Market gesendet wurde. ""

    
JPM 09.11.2011 17:09
quelle