マーケットプレイス統合: Microsoft Store
このチュートリアルでは、RedeemMicrosoftStoreInventoryItems API を使用して、PlayFab Economy v2 経由で Microsoft Store のアプリ内購入 (XBOX を含む) を引き換える方法を説明します。 このチュートリアルの終了時点で、次のことができるようになります。- Partner Center でアドオンを作成する
- 必要な Partner Center と PlayFab の設定を構成する
- Microsoft Store 製品を PlayFab カタログのバンドルにリンクする
- Redeem API を呼び出し、プレイヤーのインベントリでアイテムを確認する
前提条件
- アプリにアクセスできる Partner Center アカウント。
- Partner Center で既に作成されたアプリ。
- Game Manager で既に作成されたタイトル。
- Redeem API を呼び出すプレイヤーは、XBOX Live ID (たとえば
LoginWithXbox経由) を使用して PlayFab に認証されている必要があります。他の ID タイプ (CustomID や電子メールなど) で認証されたプレイヤーは、このフローに必要な XBOX コンテキストを持ちません。
サポートされる製品タイプ
RedeemMicrosoftStoreInventoryItems API は、次の Microsoft Store 製品タイプをサポートしています。
- 開発者管理の消耗品 — 購入、使用、再購入が可能な製品 (たとえばゲーム内通貨パック)。フルフィルメントの追跡はゲーム サービスの責任です。
- 耐久財 — 1 回購入すると永続的に所有される製品 (たとえば DLC、拡張パック、シーズン パス、コスメティック アイテム)。
Store 管理の消耗品はサポートされていません。 PlayFab Economy v2 は Store 管理の消耗品を引き換えることができません。アドオンが Store 管理の消耗品として構成されている場合、Redeem API は空の結果を含む HTTP 200 レスポンスをエラーなしで返すため、問題の診断が困難になります。
ステップ 1: Partner Center でアドオンを作成する
- Partner Center にサインインし、アプリに移動します。
- Add-ons の下で Create a new add-on を選択します。
- 適切な製品タイプを選択します。
- 再購入可能なアイテム (通貨、消耗品パック) には Developer-managed consumable。
- 1 回限りの購入 (DLC、シーズン パス、コスメティック アンロック) には Durable。
- アドオン構成 (価格、説明など) を完了し、送信します。
Developer-managed consumable を作成すると、Partner Center は次の警告を表示します: “XBOX requires consumables to be managed, so do not use this option and create a ‘managed consumable’ add-on instead. If you have any questions, contact your Microsoft representative.”* この警告は XBOX プラットフォームの一般的なガイダンスを反映しており、PlayFab の引き換えフローには適用されません。Developer-managed consumable は、PlayFab の
RedeemMicrosoftStoreInventoryItems API で使用すると XBOX で正しく機能します。安心してこの製品タイプで進めることができます。- アドオンを作成したら、Store ID をメモします。Partner Center に表示される英数字文字列 (たとえば
9NBLGGH42CFD) です。PlayFab では、開発者定義の Product ID やアドオン名 ではなく この値を使用します。
ステップ 2: Product Group、Dev Studio、Business Partner ID を構成する
このステップでは、プレイヤーの代わりに Microsoft Store Collections API を照会するために PlayFab が使用する、委任された XBOX Security Token Service (XSTS) トークン フローを構成します。- Partner Center で Developer Settings > XBOX Live > Web Services に移動し、まだ生成していない場合は Business Partner Certificate を生成します。
- Developer Settings > XBOX Live > Business Partner に移動し、relying party がひも付けられている Web サービスと一致する Business Partner ID をメモします。
- Dev Studio を作成する (または既存のものを使用) し、その Dev Studio ID をステップ 2 の Business Partner ID と一致するように設定します。Dev Studio に既に異なる ID がある場合は、既存の値を変更するのではなく、新しい Dev Studio を作成してください。変更すると既存のサービスが壊れる可能性があります。
- Product Group を作成し、ステップ 3 の Dev Studio に割り当てます。
- ゲーム製品 と すべてのアドオンを Included in this product group リストに追加します。アイテムは “available” 側から “included” 側に明示的に移動する必要があります。
- Save を選択します。
- ゲームの XBOX Settings ページに移動し、リンクされた Business Partner がステップ 2 のものと一致することを確認します。
- 対象のサンドボックスまたは RETAIL 環境で、ゲーム製品とすべてのアドオンを Microsoft Store に 再公開 します。
ステップ 3: Game Manager で XBOX Network アドオンを有効にする
XBOX Network アドオンは、Partner Center 製品を PlayFab タイトルにリンクし、Microsoft Store 引き換え用の XBOX トークン検証を有効にします。- Game Manager を開き、タイトル を選択します。
- 左側のナビゲーション メニューから Add-ons を選択します。
- XBOX Network アドオン (Distribute for XBOX と表示されます) を見つけて選択します。
- ドロップダウンから正しい Seller ID を選択します。正しい Seller ID が表示されない場合は、Sign in with a different partner center account を選択します。
- ドロップダウンから Partner Center Product ID を選択し、XBOX Live Title ID (10 進数) が Partner Center の XBOX services > XBOX Settings に表示されているものと一致することを確認します。
- Install XBOX Network を選択して構成を保存します。
Game Manager には、別の Microsoft Store アドオン ページもあります (これも Add-ons の下)。構成は必要ありませんが、サポートされている製品タイプの確認や、Dev Studio ID と Business Partner ID のセットアップに関する詳細を含む有用なガイダンスが含まれています。
ステップ 4: Marketplace Mapping を持つ PlayFab バンドルを作成する
Microsoft Store 製品を PlayFab カタログにリンクするには、Marketplace Mapping (AlternateId) を持つ バンドル を作成します。- Game Manager で、Economy > Catalog (V2) > Bundles に移動します。
- New bundle を選択します (または既存のものを編集します)。
- Marketplace Mapping セクションで、新しいマッピングを追加します。
- Marketplace type を
MicrosoftStoreに設定します (大文字と小文字が区別されます。正確にMicrosoftStoreである必要があります)。 - value を Partner Center の正確な Store ID (たとえば
9NBLGGH42CFD) に設定します。開発者定義の Product ID やアドオン名は使用しないでください。
- Marketplace type を
- このバンドルが引き換えられたときにプレイヤーが受け取るアイテム (たとえばゲーム内通貨、仮想アイテム) を追加します。
- バンドルを 公開 します。未公開 (下書き) のバンドルは引き換え時に一致しません。
ステップ 5: XBOX トークンを取得して提供する
RedeemMicrosoftStoreInventoryItems API を呼び出す際、XboxToken パラメーターに有効な XBOX トークンを提供する必要があります。
-
GDK C API を使用している場合は、次を使用します。
ステップ 6: 統合をテストする
統合を完了と見なす前に、エンド ツー エンドの完全なフローを検証してください。- アドオンが、テスト中のサンドボックスまたは環境に公開されていることを確認します。
- XBOX Live ID を使用してテスト プレイヤーとしてサインインし、Microsoft Store 経由でアドオンのテスト購入を行います。Redeem API が検出するものが存在するようにするには、プレイヤーのアカウントに未引き換えの購入が必要です。
- プレイヤーの
XboxTokenを使ってRedeemMicrosoftStoreInventoryItemsを呼び出します。 - レスポンスの
Succeeded配列にエントリが含まれ、対応するアイテムがプレイヤーの PlayFab インベントリに表示されることを確認します。
開発者管理の消耗品のフルフィルメント: 開発者管理の消耗品が引き換えられた後、PlayFab は自動的にそれを Microsoft Store に fulfilled (消費済み) として報告します。プレイヤーが再度消耗品を購入できるようにするには、フルフィルメント ステップが必要です。引き換えが成功した後に消耗品がフルフィルメント済みとして表示されない場合は、
RedeemMicrosoftStoreInventoryItems の呼び出しを再試行してください。問題が続く場合は、サポート チャネルを通じて PlayFab チームにエスカレーションしてください。詳細については、Managing consumables and refunds を参照してください。トラブルシューティング
RedeemMicrosoftStoreInventoryItems 呼び出しが正常に返される (HTTP 200) ものの、レスポンスの Succeeded、Failed、TransactionIds 配列がすべて空である場合、Microsoft Store Collections API が引き換え対象の一致するアイテムを見つけていません。通常、この動作は構成の問題によって引き起こされます。以下の項目を確認してください。
API が HTTP エラー (400 など) を返す場合は、次のコードのエラー レスポンスを確認してください。
PC / Windows タイトルに関する注意
このチュートリアルでは、委任された XSTS トークン (XboxToken パラメーター経由で渡される) を使用する XBOX フローを扱います。PC / Windows タイトル の場合、Microsoft は代わりに Microsoft Entra ID と共に User Store ID を使用したサービス間認証を推奨しています。詳細については、Requesting a User Store ID for service-to-service authentication および Authenticating your service — User Store IDs を参照してください。
関連項目
- RedeemMicrosoftStoreInventoryItems API リファレンス
- 不正防止のクイックスタート
- XBOX Live アドオンの構成
- Authenticating your service (XSTS tokens)
- Choosing the right product type
- Consumable-based ecosystems
- Managing consumables and refunds
- Alternate ID (Marketplace Mapping)
- Apple アプリを Game Manager に正常に統合する方法
- Google アプリを Game Manager に正常に統合する方法
