PlayFab と Microsoft Store をセットアップして購入を有効にする
このチュートリアルでは、次の方法を説明します。- Microsoft Store で購入可能な製品を作成する
- それを PlayFab バンドルにマッピングする
- RedeemMicrosoftStoreInventoryItems API を使用して、購入したアイテムをプレイヤーのインベントリに引き換える
前提条件
- PlayFab の Game Manager 内のタイトル。
- 選択したタイトルと Microsoft Store 間の既存の統合。以下を含みます。
- Game Manager にインストールおよび構成された XBOX Network アドオン。
- Partner Center で構成された Product Group、Dev Studio、Business Partner ID。
- アプリにアクセスできる Partner Center アカウント。
- Partner Center で既に作成されたアプリ。
- Redeem API を呼び出すプレイヤーは、XBOX Live ID (たとえば
LoginWithXbox経由) を使用して PlayFab に認証されている必要があります。他の ID タイプ (CustomID や電子メールなど) で認証されたプレイヤーは、このフローに必要な XBOX コンテキストを持ちません。
ステップ 1: Partner Center でアドオンを作成する
マーケットプレイス統合のセットアップ の一環として Partner Center でアドオンを作成していない場合は、以下の手順に従います。- Partner Center にサインインし、アプリに移動します。
- Add-ons の下で Create a new add-on を選択します。
- 適切な製品タイプを選択します。
- 再購入可能なアイテム (通貨、消耗品パック) には Developer-managed consumable。
- 1 回限りの購入 (DLC、シーズン パス、コスメティック アンロック) には Durable。
- アドオン構成 (価格、説明など) を完了し、送信します。
- アドオンを作成したら、Store ID をメモします。Partner Center に表示される英数字文字列 (たとえば
9NBLGGH42CFD) です。PlayFab のマーケットプレイス マッピングでは、開発者定義の Product ID やアドオン名 ではなく この値を使用します。
Store 管理の消耗品はサポートされていません。
RedeemMicrosoftStoreInventoryItems API では、Developer-managed consumables と Durables のみが機能します。Partner Center は、Developer-managed consumables が XBOX でサポートされていないことを示唆する警告を表示することがあります。この警告は PlayFab の引き換えフローを使用する場合には適用されません。詳細については、Choosing the right product type を参照してください。- テストしたいサンドボックスまたは環境にアドオンを公開します。
ステップ 2: Game Manager でバンドルを作成する
Game Manager でバンドルを作成する前に、バンドルに追加したいアイテムをカタログで作成および公開してください。アイテムの作成方法についてのガイダンスが必要な場合は、このステップ を参照してください。
- Game Manager に移動し、タイトル に移動します。
- 左側のナビゲーション メニューから Engage > Economy を選択します。
- Bundles タブを選択します。
- New bundle を選択します。
- アイテムや価格など、バンドル に追加したい情報を追加します。
- ページの末尾までスクロールし、プレイヤーがすぐに引き換えられるようにしたい場合は Save and publish を選択します。後日公開する場合は Save as draft を選択します。
バンドルにアイテムを追加する
バンドル自体はプレイヤーにアイテムを付与しません。まずアイテムをバンドルにリンクする必要があります。引き換えられると、バンドルは特定のプレイヤーにそれらのアイテムを付与します。 バンドルにアイテムを追加するには:- 編集モードで Items セクションに移動します。
- Add を選択します。すべてのカタログ アイテムを表示するウィンドウが表示されます。
- 目的のアイテムを見つけ、その横の Add を選択します。
- 下部の Add ボタンを選択します。
ステップ 3: マーケットプレイス マッピングを有効にする
プレイヤーが Microsoft Store から製品を購入したときに Game Manager で正しく一致して割り当てられるようにするには、バンドルの Marketplace Mapping を構成する必要があります。- 編集モードでバンドルに移動します。
- Marketplace Mapping セクションまでスクロールします。
- Marketplace ドロップダウンから MicrosoftStore を選択します (大文字と小文字が区別されます。正確に
MicrosoftStoreである必要があります)。 - Marketplace ID には、Partner Center の正確な Store ID (たとえば
9NBLGGH42CFD) を使用します。開発者定義の Product ID は 使用しないでください。 - その行の右側にある + を選択し、変更を Save します。
引き換え時に一致するように、バンドルは 公開されている 必要があります (下書きのままにしないでください)。引き換え API は未公開のカタログ アイテムを検出しません。
ステップ 4: プレイヤーを認証する
引き換え呼び出しを行う前に、プレイヤーが適切に認証されていることを確認する必要があります。XBOX および Microsoft Store のシナリオでは、LoginWithXbox を使用してプレイヤーを PlayFab に認証します。LoginWithXbox の呼び出しが成功すると、PlayFab は EntityToken を返します。これを引き換え呼び出しのヘッダーで X-EntityToken キーとして使用する必要があります。
ステップ 5: XBOX トークンを取得する
RedeemMicrosoftStoreInventoryItems API では、XboxToken パラメーターに有効な XBOX トークンが必要です。このトークンは、認証に使用される EntityToken とは別のものです。
-
GDK C API を使用している場合は、次を使用します。
ステップ 6: 購入する
プレイヤーは PlayFab を通じて引き換える前に、Microsoft Store からアドオンを購入する必要があります。この購入は XBOX または Windows Store のインターフェイスから行うことができます。サンドボックス環境でテストしている場合は、プレイヤー アカウントとアドオンの両方が同じサンドボックスに公開されていることを確認してください。引き換え API が引き換え対象のアイテムを見つけられるように、プレイヤーのアカウントには 未引き換えの購入 が必要です。
ステップ 7: 購入を引き換える
プレイヤーが認証され、XBOX トークンが取得され、購入が完了したら、RedeemMicrosoftStoreInventoryItems API を呼び出す準備ができています。EntityToken を X-EntityToken ヘッダーとして含め、リクエスト ボディで XBOX トークンを指定します。
引き換えの仕組み
RedeemMicrosoftStoreInventoryItems 呼び出しが行われると、PlayFab は XBOX トークンを使用して Microsoft Store Collections API に、プレイヤーのアカウントに関連付けられた未引き換えの購入がないかクエリします。次に、それらの購入を PlayFab バンドルのマーケットプレイス マッピングで構成された Store ID と照合し、対応するアイテムを付与します。
成功のレスポンスには、200 ステータス コードと共に、RedeemMicrosoftStoreInventoryItemsResponse が含まれ、以下が含まれます。
- Succeeded — 正常に引き換えられたアイテムのリスト。
- Failed — 引き換えに失敗したアイテムのリスト。
- TransactionIds — 各引き換え取引の ID。
items_redeemed PlayStream イベントもトリガーされて記録されます。タイトルのこれらのログには、Game Manager の左側のナビゲーション バーの Analyze セクションの下にある Data ページに移動することでアクセスできます。
開発者管理の消耗品のフルフィルメント
引き換えられた製品が Developer-managed consumable の場合、PlayFab は引き換えが成功した後、自動的にそれを fulfilled (消費済み) として Microsoft Store に報告します。プレイヤーが同じ消耗品を再購入できるようにするには、フルフィルメント ステップが必要です。引き換えが成功した後に消耗品がフルフィルメント済みとして表示されない場合は、RedeemMicrosoftStoreInventoryItems の呼び出しを再試行してください。問題が続く場合は、サポート チャネルを通じて PlayFab チームにエスカレーションしてください。Durable は 1 回限りの購入であるため、フルフィルメントは必要ありません。詳細については、Managing consumables and refunds を参照してください。
トラブルシューティング
引き換え呼び出しが200 を返すのに、3 つの配列 (Succeeded、Failed、TransactionIds) がすべて空である場合、Microsoft Store Collections API が一致するアイテムを見つけていません。この結果は通常、構成の問題を示しています。一般的な原因と解決策の完全なリストについては、Microsoft Store 統合ガイドの トラブルシューティング セクション を参照してください。
API が HTTP エラー (400 など) を返す場合は、InvalidCatalogItemConfiguration、InvalidXboxLiveToken、AccountNotLinked などのコードのエラー レスポンスを確認してください。
