Choose your operating system:
Windows
macOS
Linux
ユーザーの購入をサポートするゲームの機能は、次の 2 つのインターフェースによって強化されています。 ユーザーにオファーを提供する機能の備わった Store インターフェース と、ユーザーがこれらのオファーを受け入れられるようにする Purchase インターフェース です。 Purchase インターフェースでは、次の作業が可能です。
-
ユーザーが購入できるかどうかの確認。
-
購入プロセスの開始。
-
過去の購入履歴の確認。
ユーザーが購入する可能性のある、提供中のオファーのリストを取得またはフィルタリングするには、 Store インターフェース を使用します。
ゲーム内購入
(Purchase インターフェース上での) 購入は、ゲーム内のアイテムまたはコンテンツへのアクセスと引き換えに、ゲーム内の通貨ではなく、現実の通貨の送金を伴います。 ただし、Purchase インターフェース自体は、クレジットカード情報の取得やペアレンタル コントロールの設定などといった金融細目は処理しません。 それらの詳細についてはオンライン サービスが扱います。 Purchase インターフェースは、購入を行うユーザーの支払い能力を確認して、購入プロセスを開始し、オンライン サービスに確認して以前に購入された品目のリストを取得します。
購入する能力
購入を試みる前に、ユーザーが購入できるかどうかを確認することができます。
一部のオンライン サービスでは、ペアレンタル コントロールなど、ユーザーが購入できないようにアカウントを制限する機能が備わっています。
ユーザーにオファーを表示する前にこの情報を確認して、ユーザー インターフェースのボタンを非表示にしたり、ボタンを変更したり、ユーザーが支払い能力がないにも関わらず購入を試みた場合にエラーメッセージを表示したりすることができます。
ユーザーが購入できるかどうかを確認するには、
IsAllowedToPurchase
関数を使用します。
オンライン サブシステムでは既にこの情報をキャッシュしているので、この関数はデリゲートを使用せずに直接
bool
を返します。
購入する
購入の準備が整い、(
「Store Interface」
で定義されているように) オファーを選択したら、
FPurchaseCheckoutRequest
を含めて
Checkout
関数を呼び出します。
通常、これによってオンライン サービスに固有のユーザー インターフェースが表示され、最終的には、提供した
FOnPurchaseCheckoutComplete
型のデリゲートが呼び出されます。
デリゲートには成否に関する情報と、購入が成功した場合は購入に関する領収書 (クラス
FPurchaseReceipt
) が含まれます。
購入の領収書には、ユーザーが購入したオファーが
FReceiptOfferEntry
のデータ構造で含まれています。
各
FReceiptOfferEntry
には 1 つ以上の項目 (FLineItemInfo 型) が含まれており、それぞれにはオンライン サービスによって生成された不透明型の文字列が含まれています。また、既に実行された特定の 1 つのトランザクションを参照します。
アイテムのロックが解除された場合や、アイテムがユーザーに充当された場合、もしくはアイテムがゲーム内で使われた場合は、この ID 文字列を含む
FinalizePurchase
の呼び出しによって販売がオンライン サービスで確定され、代金の移動が行われます。
FinalizePurchase
を呼び出す前に、アイテムをユーザーに渡し、(可能な場合は) ユーザーのアカウントにそのアイテムが保存されたことを確認してください。
一部のプラットフォームでは、これを怠ると、ユーザーが受け取っていないアイテムに対してゲームによって課金されてしまう可能性があります。
過去の購入を確認する
過去の購入は、ユーザーの領収書を調べることで確認できます。
QueryReceipts
を呼び出して、特定のユーザーの領収書をリクエストできます。
完了すると、ユーザーが提供した
FOnQueryReceiptsComplete
型のデリゲートが、成否に関する情報をその結果として受け取ります。
成功した場合、ユーザー アカウントの領収書はローカルにキャッシュされ、
FPurchaseReceipt
エレメントの配列の形式で
GetReceipts
関数を介してアクセスできるようになります。
このリストには、非消費型購入品の一覧と、保留中の消費型購入品の一覧が含まれます。