Ecom Interface Overview

購入と所有権の検証を処理するインターフェースを実装

Epic Games Store
19 分で読めます

概要

Epic Online Services を使用するデベロッパーは、Ecom インターフェースにより、Epic Games ストアとやり取りする機能を利用できます。このインターフェースによって、ゲーム全体、ゲームのダウンロード コンテンツ (DLC)、バーチャル商品やゲーム内通貨などの製品の管理が可能になります。これにはオファーの提供、購入トランザクションの完了、所有権の検証、購入アイテムとの引き換えなどが含まれます。

ヒント: Ecom インターフェース機能を理解するには、このページで 太字 になっている用語を確認してください。これらの用語の定義は、「Ecom インターフェース用語集」 にあります。

はじめに

Ecom インターフェースを使用するには、対象製品で Epic Account Services (EAS) アプリケーションが設定されており、基本プロファイルのデータにアクセスすることに関して ユーザーの同意 を得る必要があります。EAS アプリケーションは デベロッパー ポータル でセットアップできます。また詳細については Epic Account Services ドキュメント で確認できます。EAS およびユーザーの同意がない場合でも、EOS SDK および Ecom インターフェースの初期化を行うことができますが、バックエンド サービスへのすべての Ecom インターフェース関数呼び出しは失敗します。

Ecom インターフェースにアクセスするには、プラットフォーム インターフェース の関数である EOS_Platform_GetEcomInterface を通じて EOS_HEcom ハンドルを取得する必要があります。すべての Ecom インターフェースの関数には、第 1 パラメータとしてこのハンドルが必要です。リクエストが完了したときにコールバックがトリガーされるようにするには、EOS_HPlatform ハンドルがティックしていることを確認する必要があります。

Ecom インターフェースで Web API を使用する方法については、「Web API を使用した所有者検証」 を参照してください。

ゲーム内ストアを運営する

ゲーム内ストアを運用するには、ストアからの カタログ オファー (オファー) をユーザーに提示する、およびユーザーがカタログ オファーを購入できるようにする 2 つの機能を実行します。この SDK によって、ゲーム内で表示するために、ストアのカタログからオファーのリストを取得する機能が提供されています。オファー データには、オファーに関する情報をユーザーに紹介するために使用するリリースの詳細など、ユーザーが購入後に取得する 1 つ以上のカタログ アイテム (オーディエンス) が含まれます。

ユーザーが購入を決めると、チェックアウト API がデータを オーバーレイ へプッシュし、そこで購入を確定するチェックアウト フローがユーザーに表示されます。購入が完了すると、コールバックがトリガーされ、ゲームが 履行 (フルフィルメント) を実行できるようにトランザクション ハンドルを提供して、トランザクションの結果をゲームに通知します。

EOS_PF_DISABLE_OVERLAY フラグ が設定されている場合、あるいは設定されていなくてもオーバーレイが利用できない場合、Ecom インターフェースの購入関連機能は無効になります。

カタログ オファー データ

カタログ オファー (型 EOS_Ecom_CatalogOffer) には、ストアをブラウズするユーザーに応じて、ローカライズされた価格情報と説明するテキストが含まれます。価格のローカライゼーションでは、対象の割引を考慮して現地通貨に変換されます。現地価格には「USD」(米ドル) などの通貨コードが含まれ、その通貨における最小単位で表示されます。たとえば、2.99 米ドルのオファーは値 299 になります。

ストア カタログを提示する

EOS_Ecom_QueryOffers 関数を呼び出すことで、カタログ オファーのリストを取得することができます。この関数は EOS_Ecom_QueryOffersOptions データ構造体を受け取り、完了時にデリゲート (型 EOS_Ecom_QueryOffersCallbackInfo) を呼び出します。EOS_Ecom_QueryOffersOptions 構造体を次のように初期化します。

プロパティ
ApiVersionEOS_ECOM_QUERYOFFERS_API_LATEST
LocalUserIdクエリを要求しているローカル ユーザーの EOS_EpicAccountId
OverrideCatalogNamespaceSDK 初期化中に指定したものと異なる場合、オプションの製品名前空間 (サンドボックス)

デリゲートを受け取る EOS_Ecom_QueryOffersCallbackInfoResultCode が正常である場合、リクエストしたオファー データはテンポラリ キャッシュで使用できます。EOS_Ecom_GetOfferCount を使ってキャッシュ内に格納されたオファーの数を特定し、EOS_Ecom_CopyOfferByIndex を使ってそこから個々のオファー (型 EOS_Ecom_CatalogOffer) のコピーを取得します。オファー内の各カタログ アイテムには、そのアイテムに関連づけられた画像とリリース詳細に関するデータが含まれます。これは別々に取り出すことができます。オファーのコピーが不要になった時点で、EOS_Ecom_CatalogOffer_Release を使って解放します。

個々のアイテム データを表示する

キャッシュからオファーを取得したら、そのオファーに含まれるカタログ アイテム数を特定するために EOS_Ecom_GetOfferItemCount を呼び出してから、EOS_Ecom_CopyOfferItemByIndex を使って個々の EOS_Ecom_CatalogItem のコピーを取得します。この構造体には、購入時に提供される利用資格の ID に加えてローカライズされたテキストが含まれます。データのコピーにアロケートされたメモリを解放するためには、EOS_Ecom_CatalogItem_Release を呼び出します。

キャッシュからカタログ アイテムに対するリリース詳細を取得するために、まず EOS_Ecom_GetItemReleaseCount を使って存在するデータ エントリ数を調べます。その後で EOS_Ecom_CopyItemReleaseByIndex を使ってデータ (型 EOS_Ecom_CatalogRelease) の個々の構成要素を取得します。不要になった時点で、EOS_Ecom_CatalogRelease_Release を呼び出してこのデータを解放します。

ストアから購入する

ユーザーがストアから何かを購入する場合、ユーザーはカタログ オファーを購入することになります。購入が完了すると、ユーザーはオファー内に含まれる (複数) カタログ アイテムを所有します。各アイテムにより購入者のユーザー アカウントに 1 つ以上の 利用資格 が追加されます。

ストアからの購入には、次の 3 つのアクションがあります。購入処理をする、所有権を検証する、利用資格を引き換える (オプション) です。

ユーザーが購入を決定すると、EOS_Ecom_CheckoutOptions 構造体で EOS_Ecom_Checkout を呼び出します。構造体を次のように初期化します。

プロパティ
ApiVersionEOS_ECOM_CHECKOUT_API_LATEST
LocalUserId購入するローカル ユーザーの EOS_EpicAccountId
OverrideCatalogNamespaceSDK 初期化中に指定したものと異なる場合、オプションの製品名前空間 (サンドボックス)
EntryCountEntries パラメータのこの構造体へ提供される EOS_EcomCheckoutEntry 要素の数。
EntriesEOS_Ecom_CheckoutEntry 要素の配列。ユーザーが購入を望む各オファーに対する EOS_Ecom_CatalogOfferId データと構造体と同じ ApiVersion を含みます。

この情報は、購入トークンの生成に使用されます。オーバーレイが表示され、ユーザーが購入内容を確認し、支払いオプションを選択して、トランザクションを確定/キャンセルできるようにします。オーバーレイが閉じると、成功、失敗、ユーザーによるキャンセルの場合に関係なく、コールバック (型 EOS_Ecom_OnCheckoutCallback) が、トランザクションの詳細を示す EOS_Ecom_CheckoutCallbackInfo パラメータで実行されます。コールバック情報内では、トランザクションが成功した場合、TransactionId は「null」以外になり、トランザクションが失敗したかキャンセルされた場合は「null」になります。

コールバック経由で最初の応答が来る前に EOS_Ecom_Checkout がさらに呼び出されると、EOS_AlreadyPending エラーが返ります。

完了した購入データへアクセスする

ユーザー購入が成功した後に、有効なトランザクション ID がある場合、EOS_Ecom_CopyTransactionById 関数に渡して EOS_Ecom_HTransaction を取得することができます。EOS_Ecom_Transaction_GetEntitlementsCount はトランザクションに関連する利用資格数を返し、EOS_Ecom_Transaction_CopyEntitlementByIndex は個々の利用資格を取得します。不要になった時点で、EOS_Ecom_Entitlement_Release を呼び出してこのデータを解放します。

トランザクション ID に関連する利用資格には、EOS_Ecom_QueryEntitlement 関数によって取得できるものと同じデータが含まれていますが、異なるキャッシュ ポリシーに従います。この違いのために、購入後にトランザクション ID を使って取得する利用資格は、明示的に EOS_Ecom_Transaction_Release を呼び出すまでトランザクション固有キャッシュ内に留まります。

所有権を検証する

ゲーム クライアント内で所有権を検証することはお勧めできません。ユーザーがソフトウェア チートを使うとバイパスできます。可能な場合は、信頼のできるサーバーで Ecom Web API を使用して所有権を検証します。

著作権侵害を防ぐために役に立つ最新の推奨事項

著作権侵害を防ぐためには、デベロッパーが所有権の検証を組み込んで 作成したゲームやあらゆる DLC をチェックすることをお勧めします。信頼できるサーバー/API におけるオンラインでの所有権の検証を強く推奨します。 一般には、これが著作権侵害を防ぐ唯一効果的な方法と考えられています。クライアント サイドの 検証を使用できるのは、複雑ではない攻撃に対応する場合です。たとえば、 変更されていないゲーム ファイルの再配布があります。

マルチプレイヤー/オンライン ゲームでの処理:

  • 信頼できるゲーム サーバーやバックエンド API に所有権チェックを組み込むには Ecom インターフェースまたは Web API を使用します。

    • これらのチェックを実装するのは、一般に認証処理中またはレベル/マッチに入るときです。
  • ユーザーが所有権チェックに合格しない場合は、アクセスを拒否します。適切に実装すると、 ユーザーが API の応答の変更やゲーム クライアント自体の改変により これらのチェックを回避することはできません。

  • 異常に高いアクティビティ レベルのアカウントをモニターして、1 つのアカウントが 複数のエンド ユーザーで共有されている場合は禁止します。

    • アカウント当たりの同時セッション数を 1 に制限することを推奨します。

あらゆるゲームでの処理:

クライアント サイド コントロールを使用して著作権侵害を完全に防ぐことは可能ではありませんが、手間をかけない攻撃/共有を抑えるオプションは複数個あります。たとえば、

  • デジタル署名と SHA1 チェックサムをゲームの実行ファイルおよびすべての 実行可能コード (.exe/.dll/.soなど) に対してチェックしてから、所有権の検証 API を起動します。ここでは EOS SDK とサードパーティ ライブラリの検証も実行します。改ざんが検出された場合に アクセスを拒否します。

  • オンライン アクティベーションを要求し、暗号化した検証可能トークンを返します。これにより ユーザーがオンライン検証に合格した後にのみオフライン アクセスを有効にできます。

    • このトークンは特定のハードウェア/ユーザー プロパティに結びつけられ、 定義した期間が経過した後に無効になります。

    • 作成したゲーム バイナリに組み込まれた公開キーを 改変して活用することから保護する必要があります。

    • 問題のアカウントで、頻繁にアクティベーションが行われたり、異なる多くのデバイスに対してアクティベーションが行われたりする場合、 アクティベーションを拒否します。

  • 市販の難読化/耐タンパー ソリューションを活用して、リバース エンジニアリングと 組み込まれたタンパー チェック (改ざん検出処理) の改変を難しくします。

  • DLC はメイン ゲーム ファイルの一部として格納しないようにしてください。DLC の配布を Epic Games ストア経由で実施、または追加ダウンロードに対して サーバー側で所有権チェックを実行する必要があります。

Ecom インターフェースでは、所有権の検証のために直接検証とトークンベース検証の 2 つの手法を用意しています。直接検証では Epic Entitlement Service と直接統合しますが、トークンベース検証ではユーザーが確認したり、サードパーティ サービスに渡したりできる署名済みトークンを提供します。直接の手法が便利なのは、信頼されているゲーム サーバーで利用する場合です。つまり検証が単純なクライアント システムでは安全性の低いチェックになります。トークンベースの手法は、ゲーム クライアント、ユーザー、利用資格 に関する情報と、ゲーム クライアントや外部サービスで検証可能な署名を含んだトークンを提供します。所有権の検証を行うサードパーティ サービスと統合する場合、外部サービスにユーザーのデータへのアクセス権を許可する必要がないトークンベースの方法を推奨します。

タイトルおよびサービスの所有権情報に RESTful エンドポイント経由でアクセスするには「Ecom Web API」を参照してください。

直接の所有権検証

ユーザーの悪意による操作を排除できないため、独自のバックエンド サービスからユーザーの購入を検証することをお勧めします。詳細については、Ecom Web API のドキュメント を参照してください。

ユーザーが特定のカタログ アイテムを所有しているかどうかを判断するには、EOS_Ecom_QueryOwnership を呼び出して EOS_Ecom_QueryOwnershipOptions 構造体を渡します。これにより、サーバーから所有権情報が取得され、指定した EOS_Ecom_OnQueryOwnershipCallback コールバック関数に渡されます。コールバック関数は、指定した void ポインタも取得します。これには、リクエストのコンテキストを把握するために製品が必要とする情報が含まれる場合があります。まず、EOS_Ecom_QueryOwnershipOptions 構造体に次の情報を入力します。

プロパティ
ApiVersionEOS_ECOM_QUERYOWNERSHIP_API_LATEST
LocalUserId所有権をクエリするローカル ユーザーの EOS_EpicAccountId。カタログ アイテムの説明テキストと価格情報のローカライズに必要
CatalogItemIds所有権を検証するためのカタログ アイテム ID のリスト
CatalogItemIdCountCatalogItemIds の要素数
CatalogNamespaceSDK 初期化中に指定したものと異なる場合、オプションの製品名前空間 (サンドボックス)

完了したら、リクエストして (void ポインタが) EOS_Ecom_OnQueryOwnershipCallback 構造体に格納されたデータを使用して、SDK によって、コールバック関数が呼び出されます。この構造体には EOS_Ecom_ItemOwnership メンバーの配列が含まれています。各メンバーはクエリしたアイテムの 1 つを記述しており、そのアイテムをユーザーが所有しているかどうかを示しています。サーバーが認識していないアイテムは、非所有として返されます。

トークンベースの所有権検証

ユーザーの悪意による操作を排除できないため、独自のバックエンド サービスからユーザーの購入を検証することをお勧めします。詳細については、Ecom Web API ドキュメント を参照してください。

所有権をチェックして、結果をローカルに数分間キャッシュするには、EOS_Ecom_QueryOwnershipToken を使用します。この関数は、次のように初期化した EOS_Ecom_QueryOwnershipTokenOptions 構造体を受け取ります。

プロパティ
ApiVersionEOS_ECOM_QUERYOWNERSHIPTOKEN_API_LATEST
LocalUserId所有権をクエリする対象のローカル ユーザーの EOS_EpicAccountId
CatalogItemIds利用資格をチェックする対象の最大 32 (EOS_ECOM_QUERYOWNERSHIPTOKEN_MAX_CATALOGITEM_IDS) 個のカタログ アイテムを含んだ配列。EOS_Ecom_CatalogItemId 型。
CatalogItemIdCountCatalogItemIds に含まれるカタログ アイテムの個数。
CatalogNamespace初期化中に指定したものでない場合、オプションの製品名前空間

操作が完了すると、コールバック関数 (EOS_Ecom_OnQueryOwnershipTokenCallback 型) が、有効期限が 5 分の JSON Web Token を含む EOS_Ecom_QueryOwnershipTokenCallbackInfo 構造体を受け取ります。JWT を公開キーで検証し、解凍してキー ID を抽出できます。キー ID は、サードパーティ サービスに送信することもできます。これにより、サードパーティ サービスが Epic Games ストアからの所有権情報を検証できます。追加の Web 呼び出しから取得するか、所属組織で共有した公開キーは、JWT の署名の検証に利用できる JSON Web Key (JWK) の形式をしています。HTTP リクエストをするには、GET を https://ecommerceintegration-public-service-ecomprod02.ol.epicgames.com/ecommerceintegration/api/public/publickeys/{kid} に送ります。サンプル リクエストを次に示します。

所有権検証トークンの詳細

所有権検証トークンは、RS512 (SHA-512 を使用した RSA PKCS#1 署名、RSA キー サイズ 2048) を使用して署名された JWT であり、作成後 5 分で有効期限が切れます。このトークンには、次のクレームが含まれます。

クレーム説明
jtiこのトークンの一意の識別子
subトークンのリクエストに使用されたアカウントのアカウント ID
clidトークンのリクエストに使用されたクライアントのクライアント ID
entこのトークンで検証された利用資格の配列。この値が空の場合、そのアカウントは所定の sandboxId に関してリクエストされたいずれの利用資格も持ちません。
iatトークンが発行された時間を示す Unix タイムスタンプ
expトークンの有効期限が切れる時間を示す Unix タイムスタンプ

購入を履行する

購入するとユーザーの アカウント は利用資格を取得しますが、ユーザーはゲーム内で自分の購入の効果を感じられないことがあります。また、ユーザーが特定の利用資格を所有しているかどうかを検証し、何らかのゲーム ロジックをこの結果に適用するだけと、簡単に購入の履行を実行できる場合もあります。このようなケースでは SDK で所有権を検証するだけで十分です。消耗品やゲーム通貨の購入などその他のケースでは、場合により利用資格を引き換えて、ゲーム内またはサードパーティのバックエンド サービスで注文を履行することも必要になります。

ゲーム クライアント内で利用資格を列挙し、引き換えることはお勧めできません。ソフトウェア チートでバイパスできるからです。可能であれば、Ecom Web API を使用して、信頼できるサーバーで列挙と引き換えを実行します。

直接の利用資格の列挙

ユーザーの悪意による操作を排除できないため、独自のバックエンド サービスからユーザーの購入を検証することをお勧めします。詳細については、Ecom Web API のドキュメント を参照してください。

ユーザー アカウントの利用資格を取得するには、EOS_Ecom_QueryEntitlementsOptions 構造体でEOS_Ecom_QueryEntitlements 関数を呼び出します。

EOS_Ecom_QueryEntitlements API は購入した 永続コンテンツ の検証に使用できないことを注意してください。シーズン パスに含まれる個別 DLC など、関連付けられているカタログ アイテム間の関係を考慮していないためです。そのため、一般に、消耗品オファーに EOS_Ecom_QueryEntitlements が使用され、上記の所有権の検証セクションで説明したように、永続コンテンツは管理されます。

EOS_Ecom_QueryEntitlementsOptions は次のように初期化されます。

プロパティ
ApiVersionEOS_ECOM_QUERYENTITLEMENTS_API_LATEST
LocalUserId利用資格を取得する対象ローカル ユーザーの EOS_EpicAccountId
EntitlementNames検証する利用資格の名前 (一般にはカタログ アイテム ID に一致) の配列
EntitlementNameCountEntitlementNames プロパティに含まれる利用資格の名前の数。最大数 EOS_ECOM_QUERYENTITLEMENTS_MAX_ENTITLEMENT_IDS まで受け付けます。0 を指定した場合は、ユーザー アカウントに関連付けられたすべての利用資格をリクエストします。
bIncludeRedeemedtrue の場合、引き換えられた利用資格が結果に含まれます。

操作の完了後に SDK は EOS_Ecom_QueryEntitlementsCallbackInfo パラメータを使って結果情報をキャッシュし、コールバック関数 (型 EOS_Ecom_OnQueryEntitlementsCallback) を実行します。このパラメータの ResultCodeEOS_Success の場合、キャッシュにはリクエストしたデータが含まれます。EOS_Ecom_GetEntitlementsCount を呼び出してキャッシュの利用資格数を特定し、EOS_Ecom_CopyEntitlementByIndex を呼び出して、利用資格を提供するカタログ アイテム ID、その利用資格に一意の ID、その他の関連データなど、個々の要素 (型 EOS_Ecom_Entitlement) のコピーを取得します。

トークンベースの利用資格の列挙

ユーザーの悪意による操作を排除できないため、独自のバックエンド サービスからユーザーの購入を検証することをお勧めします。詳細については、Ecom Web API のドキュメント を参照してください。

利用資格を列挙し、結果をローカルに数分間キャッシュするには、EOS_Ecom_QueryEntitlementToken を使用します。この関数は、次のように初期化した EOS_Ecom_QueryEntitlementTokenOptions 構造体を受け取ります。

プロパティ
ApiVersionEOS_ECOM_QUERYENTITLEMENTTOKEN_API_LATEST
LocalUserId利用資格を取得する対象ローカル ユーザーの EOS_EpicAccountId
EntitlementNames検証する利用資格の名前 (一般にはカタログ アイテム ID に一致) の配列
EntitlementNameCountEntitlementNames プロパティに含まれる利用資格の名前の数。最大数 EOS_ECOM_QUERYENTITLEMENTS_MAX_ENTITLEMENT_IDS まで受け付けます。0 を指定した場合は、ユーザー アカウントに関連付けられたすべての利用資格をリクエストします。

操作が完了すると、コールバック関数 (EOS_Ecom_OnQueryEntitlementTokenCallback 型) が、有効期限が 5 分の JSON Web Token を含む EOS_Ecom_QueryEntitlementTokenCallbackInfo 構造体を受け取ります。JWT を公開キーで検証し、解凍してキー ID を抽出できます。それをサードパーティ サービスに送信することもできます。すると、サードパーティ サービスが Epic Games ストアからの利用資格情報を検証できます。追加の Web 呼び出しから取得するか、所属組織で共有した公開キーは、JWT の署名の検証に利用できる JSON Web Key (JWK) の形式をしています。HTTP リクエストをするには、GET を https://ecommerceintegration-public-service-ecomprod02.ol.epicgames.com/ecommerceintegration/api/public/publickeys/{kid} に送ります。サンプル リクエストを次に示します。

利用資格の列挙トークンの詳細

利用資格の列挙トークンは、RS512 (SHA-512 を使用した RSA PKCS#1 署名、RSA キー サイズ 2048) を使用して署名された JWT であり、作成後 5 分で有効期限が切れます。このトークンには、次のクレームが含まれます。

クレーム説明
jtiこのトークンの一意の識別子
subトークンのリクエストに使用されたアカウントのアカウント ID
clidトークンのリクエストに使用されたクライアントのクライアント ID
entこのトークンで検証された利用資格の配列。この値が空の場合、そのアカウントはリクエストされたいずれの利用資格も持ちません。
iatトークンが発行された時間を示す Unix タイムスタンプ
expトークンの有効期限が切れる時間を示す Unix タイムスタンプ

利用資格を引き換える

ユーザーの悪意による操作を排除できないため、独自のバックエンド サービスからユーザーの購入を検証することをお勧めします。詳細については、Ecom Web API のドキュメント を参照してください。

消耗品利用資格 を履行した、またはサードパーティ サービスの管理により履行した後、EOS_Ecom_RedeemEntitlementsOptions 構造体を使って EOS_Ecom_RedeemEntitlements 関数を呼び出します。構造体を次のように初期化します。

プロパティ
ApiVersionEOS_ECOM_REDEEMENTITLEMENTS_API_LATEST
LocalUserId利用資格を引き換えるユーザー アカウントの ID
EntitlementIdCountEntitlementIds の要素数
EntitlementIds引き換える利用資格 (型 EOS_Ecom_EntitlementId)

完了すると、型 EOS_Ecom_OnRedeemEntitlementsCallback のコールバックは EOS_Ecom_RedeemEntitlementsCallbackInfo 構造体を受け取ります。

利用資格を引き換えた後、EOS_Ecom_QueryEntitlementsOptions パラメータの bIncludeRedeemedtrue に設定されていない限り、これは EOS_Ecom_QueryEntitlements 呼び出しの結果には表示されなくなります。利用資格は引き換えた後でもキャッシュに格納されていることに注意してください。キャッシュをクリアする方法はありません。

Ecom インターフェース用語集

このセクションでは Ecom インターフェース内で一般的に使用される用語と定義を説明します。

用語定義
カタログ オファー (Catalog Offers)カタログ オファー (オファー) とは、1 つ以上のカタログ アイテムと関連価格 (無料の場合もある) を組み合わせたものです。オファーの購入後、オファーに含まれるアイテムごとに利用資格が付与されます。
カタログ アイテム (Catalog Item)カタログ アイテム (オーディエンス) は、ゲーム全体、インゲーム通貨、武器のスキンといったバーチャル商品や、その他のタイプのダウンロード可能なコンテンツを表します。利用資格をアカウントに対してどのように承認するかを定義するためにアイテムは使用されます。カタログ アイテムは、Epic Games ストアの動的バンドル機能により他のカタログ アイテムを付与するように設定できます。これにより関連するオファーを時間の経過とともに更新できます。たとえば、シーズン パスの所有者が、新しい DLC のリリース時に操作することなくその所有権を取得できるようにすることができます。
利用資格 (Entitlement)利用資格とは、Epic Games ストア インフラストラクチャ内でユーザーが所有するものです。利用資格によって、1 つ以上のカタログ アイテムにアクセスできるようになります。
消耗品利用資格 (Consumable Entitlement)消耗品利用資格は有効期間が限られており、ゲーム内でアイテムを使用するたびに使用可能回数が減ります。これは、ゲーム内通貨、XP ブーストの他、使い切ったら購入して補充できるアイテムでよく使用されています。場合によっては、外部サービスが利用資格を履行します。外部サービスが利用資格に関する情報を受け取ると、利用資格が引き換えられ、使用回数をデクリメントし、0 になると、実質的にユーザー アカウントから利用資格を削除します。0 になった後、外部サービスはアイテムのゲーム内エフェクトを処理する責任を負います。
永続品利用資格 (Durable Entitlement)特定の形式のダウンロード コンテンツやゲーム全体など、購入品が永続的に利用できる利用資格。
履行 (Fulfillment)消耗品利用資格が、ユーザー アカウントの一部となった後に、履行を行う必要があります。ユーザーとのやり取りなしで (SDK API で) チェックすることができます。または、サードパーティ サービスがバックエンド サービス API 呼び出しを通じて履行の責任を引き受けることができます。

以下の表は、Ecom インターフェース内で使用されるさまざまな ID タイプと説明です。

ID タイプ説明
カタログ オファー IDカタログ オファー ID はストアでのオファーに対する一意の識別子です。これらの ID は製品内で一意です。チェックアウト プロセスにはカタログ オファー ID が必要です。
カタログ アイテム IDカタログ アイテム ID は製品内で一意であり、単一のカタログ アイテムを識別します。特定のユーザーが対応するカタログ アイテムを所有しているかどうかを確認するために必要な ID です。
利用資格名各カタログ アイテムに関連付けられた利用資格名を持つことができます。これらの利用資格名をグループ化に使用することができます。ただし、利用資格名は一般にカタログ アイテム ID と同じ値です。Ecom インターフェースは、許可されたカタログ オファーでカタログ アイテムに関連付けられた利用資格名を基に利用資格をクエリすることができます。
利用資格 ID対象ユーザーで格納された特定の利用資格として、ユーザー アカウントでカタログ オファーとそのカタログ アイテム マニフェストを履行します。各利用資格にはそれぞれに一意の識別子があります。この ID は、利用資格の引き換え時に Ecom インターフェースによって使用されます。