レシート検証
購入レシートの真正性を確認して、詐欺を防止し、安全なトランザクションを確保します。
読み終わるまでの所要時間 1 分最終更新 8日前
購入レシートは、アプリストアからの安全なデジタル記録で、トランザクションの成功の証拠となります。ユーザーが購入を完了すると、アプリケーションはこのレシートを受け取ります。 Unity Iap は、詳細なトランザクション データを含むストア固有のペイロードを含む、統一されたレシート構造体を提供します。
OnPurchasePendingPendingOrderレシート構造体
Unity Iap は、レシートを異なるストア間で一貫した構造体を持つ JSON オブジェクトにフォーマットします。 以下のキーです。キー /Key | 値 |
|---|---|
| 購入が発生したストアの名前 ( |
| このトランザクションの一意の識別子。ストアによって提供されます。 |
| ストア固有のRawのレシートデータ。これは最も重要なフィールドで、トランザクション検証に必要な情報が含まれています。 |
トランザクション検証
トランザクション検証により、購入が正当なものであることを確認します。これにより、ユーザーは実際に購入したコンテンツにのみアクセスできます。 検証は、以下の一般的なタイプの不正行為からアプリケーションを保護します。- 偽造されたレシート:悪意のあるユーザーが、支払わずに偽のレシートを作成してコンテンツのロックを解除しようとする可能性があります。
- リプレイ攻撃 /replay attackユーザーは、1つの有効なレシートを複数のアカウントに再使用しようとしたり、同じ非消費型項目を繰り返し請求したりする場合があります。
検証方法
ユーザーのデバイス(ローカル検証)またはコントロールする安全なサーバー(リモート検証)でレシートを検証できます。-
ローカル検証
- デバイス上で直接検証を実行します。
- アプリケーションに含まれるコンテンツに適しています (キャラクターのロック解除や特徴の有効化など)。
-
-
-
リモート(サーバ側)検証
- すべてのトランザクションに推奨され、ゲーム内通貨やダウンロード可能なアイテムの付与など、サーバーが提供するコンテンツに不可欠です。
- アプリケーションがバックエンドサーバーにレシートを送信します。
Payload - サーバーがアプリストアの検証サービス (Apple や Google 例えば通信し、コンテンツをリリースする前にレシートの信頼性を確認します。