ドキュメント

​
​

Development

User Acquisition

Monetization

産業

In-App Purchasing

IAP Client API

IAP SDK API

Webshop Admin API

Webshop Client API

In-App Purchasing

LiveOps
​
​
使用の準備
  • 概要
  • IAP の概要
  • IAP v5の新機能
  • IAP v4からv5へのアップグレード
コンシューマー (D2C)への直接支払い
  • コンシューマー (D2C)支払いプロバイダーへの直接送信
ウェブショップ
  • 概要
  • 使用の準備
  • ビルドと公開
  • 設定
  • ゲームに接続
  • 管理
  • Webshop のトラブルシューティング
プラットフォームネイティブ
  • プラットプラットフォームネイティブの IAP の設定
  • Codeless IAP
カタログとストア管理
  • 製品カタログの作成
    • カタログとカタログリスト
    • カタログスキーマ
    • エディターでカタログを作成する
    • IAP Catalog ウィンドウ リファレンス
    • プログラムでカタログを作成する
    • リモートカタログの作成
    • ダッシュボードでのカタログの管理
    • Codeless IAP
    • ストア
    • 購入 /Purchases
    • レシート検証
    • 購入の復元
  • サポートされているストア
  • リファレンス
購入 /Purchases
  • 購入管理とフルフィルメント
    • 購入 /Purchases
    • レシート検証
    • 購入の復元
    • SubscriptionInfo クラスリファレンス
IAP パフォーマンスの監視
  • 概要
  • IAP収益パフォーマンス
  • D2C パフォーマンス
プライバシー
  • プライバシーと同意
  1. Unity アプリ内課金

レシート検証

購入レシートの真正性を確認して、詐欺を防止し、安全なトランザクションを確保します。
読み終わるまでの所要時間 7 分
最終更新 2ヶ月前

購入レシートは、アプリストアからの安全なデジタル記録で、トランザクションの成功の証拠となります。ユーザーが購入を完了すると、アプリケーションはこのレシートを受け取ります。
Unity Iap は、詳細なトランザクション データを含むストア固有のペイロードを含む、統一されたレシート構造体を提供します。
OnPurchasePending
から
PendingOrder
を受け取ったら、詐欺を防ぐためにその真正性を確認する必要があります。このプロセスはトランザクション検証と呼ばれます。

レシート構造体

Unity Iap は、レシートを異なるストア間で一貫した構造体を持つ JSON オブジェクトにフォーマットします。
以下のキーです。

キー /Key

値

Store
購入が発生したストアの名前 (
GooglePlay
、
AppleAppStore
など)。
TransactionID
このトランザクションの一意の識別子。ストアによって提供されます。
Payload
ストア固有のRawのレシートデータ。これは最も重要なフィールドで、トランザクション検証に必要な情報が含まれています。

トランザクション検証

トランザクション検証により、購入が正当なものであることを確認します。これにより、ユーザーは実際に購入したコンテンツにのみアクセスできます。
検証は、以下の一般的なタイプの不正行為からアプリケーションを保護します。
  • 偽造されたレシート:悪意のあるユーザーが、支払わずに偽のレシートを作成してコンテンツのロックを解除しようとする可能性があります。
  • リプレイ攻撃 /replay attackユーザーは、1つの有効なレシートを複数のアカウントに再使用しようとしたり、同じ非消費型項目を繰り返し請求したりする場合があります。
元のアプリストアでレシートを検証することで、コンテンツへのアクセスを許可する前に、トランザクションが本物で、正しいユーザーと製品に関連付けられていることを確認できます。

検証方法

ユーザーのデバイス(ローカル検証)またはコントロールする安全なサーバー(リモート検証)でレシートを検証できます。
  • ローカル検証
    • デバイス上で直接検証を実行します。
    • アプリケーションに含まれるコンテンツに適しています (キャラクターのロック解除や特徴の有効化など)。
    • 重要
      ローカル検証は、悪意のあるユーザーが自身のデバイスでコードを簡単に改ざんしてチェックをバイパスできるため、セキュリティが低くなります。
    • 注
      ローカル検証は StoreKit 2 によって自動的に行われます。
  • リモート(サーバ側)検証
    • すべてのトランザクションに推奨され、ゲーム内通貨やダウンロード可能なアイテムの付与など、サーバーが提供するコンテンツに不可欠です。
    • アプリケーションがバックエンドサーバーにレシート
      Payload
      を送信します。
    • サーバーがアプリストアの検証サービス (Apple や Google 例えば通信し、コンテンツをリリースする前にレシートの信頼性を確認します。
    注
    Unity Iap はビルトインのリモート検証サービスを提供していませんが、独自のソリューションを実装することも、サードパーティ製のソリューションを使用することもできます。
    • Googleレシート
      Payload
      はサーバー側の検証に使用します。
    • Apple - を追加しました。従来はレシート
      Payload
      が検証に使用されていましたが、Apple ではこのメソッドは非推奨になりました。ただし、StoreKit 1 ではまだ
      Payload
      が必要であり、当面は保持する必要があります。
    • Apple (新しいメソッド):新しい実装の場合は、サーバー側の検証に
      OrderInfo.Apple.jwsRepresentation
      を使用します。
注
StoreKit 1 のレシートからできるだけ早く StoreKit 2 の jwsRepresentation に移行することで、信頼性、セキュリティ、パフォーマンスが向上し、最終的にはユーザー体験が向上します。
注
サーバー側の検証に OrderInfo.Apple.jwsRepresentation を使用します。

Copyright © 2026 Unity Technologies
法規事項プライバシーポリシークッキーDocumentation Terms of Use私の個人情報を販売または共有しないプライバシーに関する選択 (クッキー設定)

"Unity" の名称、Unity のロゴ、およびその他の Unity の商標は、米国およびその他の国における Unity Technologies またはその関係会社の商標または登録商標です (詳しくはこちら)。その他の名称またはブランドは該当する所有者の商標です。

一部のページは利便性向上のため機械翻訳を使用しており、内容に不正確な表現が含まれる場合があります。内容に齟齬または不一致が生じた場合は、英語版を正本とします。

  • このページ
    • レシート構造体

    • トランザクション検証

    • 検証方法


このページの問題を報告する