Purchase インターフェース

ゲーム内購入を実行するためのオンライン サブシステムです。

ユーザーの購入をサポートするゲームの機能は、次の 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 関数を介してアクセスできるようになります。 このリストには、非消費型購入品の一覧と、保留中の消費型購入品の一覧が含まれます。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル