Androidアプリからアプリ内購入をどのように処理できるかについて学習しています。私はthis documentを読んでいます。ユーザーの支払い情報を収集して、Google Playのサーバーと通信のGoogle Playアプリのと通信します(クライアントAKA)アイテムがユーザーによって購入されたかどうかを確認するためにGoogle Play Serverに問い合わせることはできますか?
私のAndroidアプリ:
基本的には、この文書は説明の流れは以下の通りです。 。 Google Playサーバーはアイテムをユーザーに割り当て、Google Playアプリに応答し、購入したことをクライアントに伝えます。その後、クライアントは商品を配送し、その商品が消費されたことをGoogle Play Appに報告します。これにより、Google Playサーバーは商品を消費済みとしてマークします。
セキュリティ上の問題が発生します。クライアントがアイテムを購入したことをサーバーに伝えてアイテムを配信します。私のサーバはアイテムを配送するサーバです。私のクライアントアプリケーションはマルチプレイヤーゲームです。このため私のサーバーはにはがあります。クライアントアプリケーションだけでは実行できません。
しかし、上記のフローでは、私のサーバーがクライアントを信頼する必要があります。クライアントがハッキングされている場合や、悪意のあるプログラムに置き換えられた場合、クライアントは任意のアイテムを何度も配信するようにサーバーに指示することができます。私のサーバーが、これらの購入が正当なものであるかどうかを確認する方法があります。セキュリティリスクです。
代わりに、私のサーバーでGoogle Playサーバーに尋ねます:このユーザーは実際にこのアイテムを所有していますか? Google Play Serverが報告する回答は信頼できるものでした。しかし、そうするAPIはありますか?もしそうなら、その文書はどこにありますか?そのようなAPIがない場合、マルチプレーヤーゲームはどのようにして購入のセキュリティを保証しますか?
これは、私のサーバーではなく、デバイス上のアプリケーションから呼び出されなければならないようです。 '' Google Playサービスは、現在デバイスにログインしているユーザーアカウントで行われた購入のみを返します。 "'私のサーバーは、購入したアイテムをGoogle Playから(アプリを信用することなく)見つけることができます。まだ消費されていない。 –
アプリの請求でGoogle Playを試したことがありませんので、私が引用できるのは公式ドキュメントです。あなたがしていることがサポートされているかどうかは分かりません。 – noogui