Ich verwende Version 3 der In-App-Abrechnungs-API. Ich habe einen einzelnen, verwalteten, nicht verbrauchbaren Artikel. Ich habe diese Funktion noch nicht in meiner App veröffentlicht, daher möchte ich vor dem Kauf über den Inhalt der Kaufnutzlast entscheiden.
Aus "Best Practices für Sicherheit" :
Legen Sie die Entwickler-Payload-Zeichenfolge fest, wenn Sie Kaufanfragen stellen
Mit der In-App-Abrechnungs-API der Version 3 können Sie beim Senden Ihrer Kaufanfrage an Google Play ein Zeichenfolgentoken für Entwickler-Nutzdaten einfügen. In der Regel wird dies verwendet, um ein Zeichenfolgentoken zu übergeben, das diese Kaufanforderung eindeutig identifiziert. Wenn Sie einen Zeichenfolgenwert angeben, gibt Google Play diese Zeichenfolge zusammen mit der Kaufantwort zurück. Wenn Sie anschließend Fragen zu diesem Kauf stellen, gibt Google Play diese Zeichenfolge zusammen mit den Kaufdetails zurück.
Sie sollten ein Zeichenfolgentoken übergeben, mit dem Ihre Anwendung den Benutzer identifizieren kann, der den Kauf getätigt hat, damit Sie später überprüfen können, ob dies ein legitimer Kauf dieses Benutzers ist. Für Verbrauchsartikel können Sie eine zufällig generierte Zeichenfolge verwenden. Für nicht Verbrauchsartikel sollten Sie jedoch eine Zeichenfolge verwenden, die den Benutzer eindeutig identifiziert.
Wenn Sie die Antwort von Google Play zurückerhalten, stellen Sie sicher, dass die Payload-Zeichenfolge des Entwicklers mit dem Token übereinstimmt, das Sie zuvor mit der Kaufanfrage gesendet haben. Als weitere Sicherheitsmaßnahme sollten Sie die Überprüfung auf Ihrem eigenen sicheren Server durchführen.
Zu Recht oder zu Unrecht habe ich beschlossen, keine "weiteren Sicherheitsvorkehrungen" zu treffen, um einen Server für die Kaufüberprüfung einzurichten. Und ich speichere keine eigenen Aufzeichnungen über den Kauf - ich rufe immer die Abrechnungs-API auf. Gibt es wirklich einen Grund für mich, diese Nutzlastüberprüfung durchzuführen? Die Überprüfungs-API selbst überprüft mit Sicherheit die Identität eines Benutzers, bevor ein Artikel als gekauft gemeldet wird. Wenn ein Angreifer ein Gerät (entweder die App oder die Google Play-API) kompromittiert hat, sehe ich keinen Vorteil darin, eine zusätzliche Überprüfung durchzuführen die Identität des Benutzers auf dem Gerät, wo es leicht umgangen werden kann. Oder gibt es einen Grund dafür, an den ich nicht denke?