はい、私はすべてのドキュメント@developer.android.comを読みましたが、1つの基本的な例外、つまり導入された目的を除いて、すべてを理解しています。
Google Playからのすべての注文応答は、誰もがアクセスできない秘密鍵によって署名され、ペアの公開鍵(私の場合は外部サーバー上にあるため、第三者もアクセスできない)によって検証されているため、単純に(ほとんど)方法がありません。なりすまし。
これらのナンスはすべて、購入を保護するための冗長な方法にすぎません。さらに、次の場合、ドキュメントは状況について何も述べていません。
- アイテムを購入します。
- ノンスを生成してGooglePlayに送信します。
- クラッシュすると、私の既知のナンスはすべて失われます。
- アプリを再起動して、GooglePlayからコールバックを受け取ります。
- ...そして、ナンスを認識しなかったため、この呼び出しを拒否します!
上記の状況では、ユーザーはアイテムの代金を支払い、決してそれを手に入れません。それは恥ずべきことです。もちろん、ナンスをいくつかのファイルに保存して、アプリが戻ってきたときにそれを再読み込みすることはできますが、それはノンスのすべての原則に違反しています。
IMHOの誰かが、「検証プロセスが単純すぎるので、ランダムに何かを追加しましょう。もっとクールになります!」と言ったばかりです。だから誰かがやった。
または、他のユースケースに心を開いていただけませんか。それ以外の場合は、コードからナンス部分全体を削除しています。