次の方法で共有


PlayFab と Apple App Store を使用してアプリ内購入を設定する

このチュートリアルでは、Apple App Store のアプリ内購入 (IAP) アイテムを作成し、ゲーム マネージャーでカタログに追加し、引き換えプロセスを通じてプレイヤーをガイドする方法について、手順を追って説明します。

前提条件

  1. PlayFab のゲーム マネージャーのタイトル。
  2. PlayFab で選択したタイトルと Apple App Store の間の既存の統合
  3. App Store Connect へのアクセス。
  4. App Store Connect で既に作成されているアプリ。
  5. App Store Connectアプリ内に作成されたアプリ内購入アプリ内購入には、価格ローカライズが含まれている必要があります。
  6. 対応するトランザクション オブザーバーのある支払いキューは、既にアプリの一部になっています。

手順 1: テスト ユーザーを作成する

実際の支払いを行わずに購入を適切にテストするには、まずアプリのテスト ユーザーを作成します。

  1. [App Store Connect]>[ユーザーとアクセス] に移動します。

  2. [サンドボックス] を選択します。

    [サンドボックス] タブ オプション

  3. [テスト アカウント] の横にあるプラス記号 (+) ボタンを選択します。

  4. フォームに入力し、[作成] を選択します。

    新しいテスト ユーザー フォーム

手順 2: ゲーム マネージャーでバンドルを作成する

注意

ゲーム マネージャーでバンドルを作成する前に、カタログ内のバンドルに追加するアイテムが既に作成および公開されていることを確認します。 このチュートリアルでは、Super Awesome Sword という名前の剣を既に作成していることを前提としています。 アイテムの作成方法に関するガイダンスが必要な場合は、この手順を参照してください。

ゲーム マネージャーApp Store Connect の間でマーケットプレース マッピングを有効にするには、ゲーム マネージャーでバンドルを作成する必要があります。 バンドルには数量が異なる複数のアイテムを含めることができます。PlayFab では、引き換え後にプレイヤーのインベントリに追加されます。 ゲーム マネージャーで新しいバンドルを作成するには、次の手順に従います:

  1. ゲーム マネージャーに移動して、[タイトル] に移動します。

  2. 左側のナビゲーション メニューから [エンゲージメント]>[エコノミー] の順に選択します。

  3. [バンドル] タブを選択します。

    [バンドル] タブ

  4. [新しいバンドル] を選択します。

  5. アイテムや価格など、バンドルに必要な情報を追加します。 このチュートリアルでは、Super Awesome Sword バンドルを名前として使用します。

    バンドル オプション

  6. ページの最後まで下にスクロールし、[保存して公開] を選択すると、プレイヤーがすぐに引き換えできるようになります。 後で公開する場合は、[下書きとして保存] を選択します。

    保存オプション

バンドルにアイテムを追加する

バンドル自体はプレイヤーにアイテムを付与しません。まずバンドルにアイテムをリンクする必要があります。引き換えると、それらのアイテムが特定のプレイヤーに付与されます。

バンドルにアイテムを追加するには、次の手順に従います:

  1. 編集モードで [アイテム] セクションに移動します。
  2. [追加] を選択します。 すべてのカタログ アイテムを示すウィンドウが表示されます。
  3. 種類でフィルター処理したり、特定のアイテムを検索したりすることができます。
  4. Super Awesome Sword を見つけて、その横にある [追加] を選択します。
  5. 最後に、下部にある [追加] ボタンを選択します。

これにより、アイテムがバンドルに追加されます。

バンドルにアイテムを追加する

手順 3: マーケットプレース マッピングを有効にする

プレイヤーがアプリからバンドルを購入したときに、ゲーム マネージャーで適切に購入および割り当てられるようにするには、マーケットプレース マッピングを構成する必要があります。 これは、ゲーム マネージャーでバンドルを作成しているとき、またはバンドルが作成された後に、編集モードでバンドルに戻ることで実行できます。

  1. 編集モードでバンドルに移動します。
  2. [マーケットプレース マッピング] セクションまで下にスクロールします。
  3. [マーケットプレース] ドロップダウンから、目的のマーケットプレースを選択します。 (このチュートリアルでは、AppleAppStore です)。
  4. マーケットプレース ID には、App Store Connect製品 ID と同じものを使用してください。 このチュートリアルでは、pf.commerce.ios.sas1 を使用しました。
  5. 完了するには、その行の右側にある + を選択し、変更を保存します。

マーケットプレース マッピング

手順 4: 購入を行う

ヒント

このトピックの詳細については、「アプリ内購入」を参照してください。

アプリ内購入を構成する方法の概要については、「Apple の開発者向けドキュメント」を参照してください。

これで、App Store ConnectIAP を作成し、ゲーム マネージャーアイテムを使用してバンドルを構成し、バンドルマーケットプレース マッピングを設定しました。 ではアプリから IAP を購入してみましょう。

アプリから IAP アイテムを公開して購入したら、手順 1 で作成したテスト ユーザーを使用して、アプリで IAP を購入できます。 これが完了すると、Apple の API は領収書を返す必要があります。これを PlayFab の引き換え API と共に使用して購入を検証し、バンドル内のアイテムをプレイヤーに付与する必要があります。

手順 5: アプリ内購入を引き換える

Apple の API から領収書を取得したら、PlayFab の RedeemAppleAppStoreInventoryItems API 呼び出しを使用して IAP を正常に引き換える必要があります。 この場合、認証されたプレイヤーに Super Awesome Sword を付与する必要があります。

両方の ID が一致していることを確認する

引き換え呼び出しを行う前に、マーケットプレース マッピングにゲーム マネージャーで使用した代替 ID が両方とも、App Store Connect製品 ID と一致していることを確認する必要があります。

次のスクリーンショットは、ゲーム マネージャーのバンドル内にあるものです。Marketplace ID は、AlternateId と呼ばれるもので、基本的にはバンドルを識別する別の方法です。

マーケットプレース マッピング

App Store Connect からマイ アプリに移動し、目的のアプリを選択し、左側のナビゲーション メニューから [機能]>[アプリ内購入] に移動し、最後に IAP を選択して、IAP メタデータから製品 ID が表示されます。

App Store Connect 製品 ID

プレイヤーを認証させる

アイテムを引き換えるには、RedeemAppleAppStoreInventoryItems を使用します。 ただし、その前に、アイテムを引き換えるプレイヤーがアプリ内で適切に認証されていることを確認する必要があります。そのためには、LoginWithApple を使用します。

LoginWithApple 呼び出しが成功すると、PlayFab の API は、X-EntityToken キーを含む RedeemAppleAppStoreInventoryItems ヘッダーの一部として使用する必要があるエンティティ トークンを返します。 テストするために API プラットフォームを使用している場合は、次のようになります。

API プラットフォーム ヘッダー キー

引き換え呼び出しを行う

プレイヤーが認証されると、ID の確認と照合と、プレイヤーが行ったアプリ購入の領収書の両方が表示されます。 引き換え呼び出しを行う準備ができました。 このためには、RedeemAppleAppStoreInventoryItems API 呼び出しを使用します。

{
    "Receipt": "{Your receipt}"
}

引き換え呼び出しの値は 1 つだけであり、IAP の購入が成功した後に Apple から返される領収書です。

成功した応答には、タイムスタンプMarketplaceTransactionId などのデータと共に 200 status code が含まれます。

引き換え呼び出しが正常に実行されると、認証されたプレイヤーのインベントリに Super Awesome Sword が表示されます。 これにより、プレイヤーのトランザクション履歴で対応するイベントがトリガーされます。 これは、ゲーム マネージャーのプレイヤーの概要ページの下にある [トランザクション履歴 (V2)] タブから取得できます。

プレイヤーのトランザクション履歴の新しいログ エントリと共に、items_redeemedPlayStream イベントもトリガーされ、ログに記録されます。 ゲーム マネージャーの左側のナビゲーション バーの [分析] セクションの下にある [データ] ページ移動すると、タイトルのこれらのログにアクセスできます。 ここでは、クエリを編集して特定のレコードを検索したり、既定の設定で実行してすべてを取得したりできます。 items_redeemed というイベント名の下にレコードが存在するはずです。

手順 6: トランザクションの終了

購入したアイテムを正常に引き換えた後は、購入キューに無期限に残らないように、トランザクションを適切に完了する必要があります。 トランザクションが成功したか失敗したかに関係なく、トランザクションを完了する必要があるのに注意することが重要です。

トランザクションを適切に完了するには、Apple のfinishTransaction(_:) メソッドを使用する必要があります。

注意

finishTransaction(_:) に関する詳細については、Apple のドキュメント を参照してください。

関連項目