アプリ内課金APIのバージョン3を使用しています。私は単一の管理された非消耗品を持っています。この機能はまだアプリでリリースしていないので、購入する前に購入ペイロードの内容を決定したいと思います。
購入リクエストを行うときに開発者のペイロード文字列を設定します
アプリ内課金バージョン3APIを使用すると、購入リクエストをGooglePlayに送信するときに「デベロッパーペイロード」文字列トークンを含めることができます。通常、これは、この購入要求を一意に識別する文字列トークンを渡すために使用されます。文字列値を指定すると、GooglePlayはこの文字列を購入応答とともに返します。その後、この購入についてクエリを実行すると、GooglePlayはこの文字列を購入の詳細とともに返します。
アプリケーションが購入を行ったユーザーを識別するのに役立つ文字列トークンを渡す必要があります。これにより、後でこれがそのユーザーによる正当な購入であることを確認できます。消耗品の場合はランダムに生成された文字列を使用できますが、非消耗品の場合はユーザーを一意に識別する文字列を使用する必要があります。
Google Playから応答が返ってきたら、デベロッパーのペイロード文字列が購入リクエストで以前に送信したトークンと一致することを確認してください。さらなるセキュリティ対策として、自分の安全なサーバーで検証を実行する必要があります。
正誤を問わず、購入確認を行うサーバーを設置するという「さらなるセキュリティ対策」を講じないことにしました。そして、私は購入の自分の記録を保存しません-私は常に課金APIを呼び出します。それで、私がこのペイロード検証を行う理由は本当にありますか?検証API自体は、購入したアイテムを報告する前にユーザーのIDを確実に検証します。攻撃者がデバイス(アプリまたはGoogle Play APIのいずれか)を侵害した場合、追加のチェックを行うメリットはありません。簡単に回避できるデバイス上のユーザーのID。それとも、私が考えていないのにこれを行う理由はありますか?