UDP パッケージリファレンス
エディター UI
Unity Distribution Portal 設定
Project Settings ウィンドウの Unity Distribution Portal 設定は、Unity プロジェクトと UDP クライアント間の接続を管理します。Unity Distribution Portal 設定を使用可能にするには、UDP パッケージをインストール し、Unity プロジェクトを UDP クライアントにリンク する必要があります。
Unity エディターで Unity Distribution Portal 設定にアクセスするには、Services > Unity Distribution Portal > Configure を選択します。
以下の表で、Unity Distribution Portal 設定のインターフェースを説明します。
フィールド | Description (説明) |
---|---|
Pull | 最後に UDP サーバーに保存した情報をエディターに取得 (引き出) します。 以下の情報が同期されます。 - Game Title - Settings - UDP Sandbox Test Accounts - IAP Catalog (UDP パッケージのみを使用している場合) これにより、エディターで保存されていない変更は上書きされます。 |
Push | 変更を UDP サーバーに保存 (プッシュ) します。 以下の情報は同期されます。 - Game Title - Settings - UDP Sandbox Test Accounts - IAP Catalog (UDP パッケージで直接 IAP カタログを定義した場合) |
Game Title | ゲームのタイトルを入力し、Push を押して保存します。このフィールドは UDP コンソールと同期します。 デフォルトで、または最初にロードすることによって、Game Title に Game ID が入力されます (Settings を参照)。 |
Unity Project ID | Unity プロジェクト ID。これは UDP クライアント ID にリンクされます。このフィールドは編集できません。 |
Settings | その他のゲーム 設定 を行います。 |
UDP Sandbox Test Accounts | UDP サンドボックスのテストアカウントの設定を行います。 |
Go to UDP Console | ウェブブラウザーで UDP コンソールを開きます。 |
Go to IAP Catalog | IAP Catalog ウィンドウを開きます。 |
IAP Catalog
IAP Catalog セクションでは、UDP 用の IAP プロダクトを定義できます。IAP プロダクトのリストと IAP プロダクトの総数が表示されます。新しいアイテムを加えるには、Add new IAP Product を選択します。
下の表は IAP Catalog セクションの説明です。
フィールド | Description (説明) |
---|---|
Product ID | IAP プロダクトを識別するために使用される一意の ID。 Product ID は、以下の要件に従う必要があります。 - アルファベット文字または数字で始める必要があります - アルファベット文字、数字、ドット (.)、アンダースコア (_) のみ使用可能です - 大文字は使えません |
Name | IAP プロダクトの名前。 |
Type | IAP が消費型であるかどうか。 |
Price | 米ドル表示の IAP プロダクトの価格。UDP コンソールで 他の通貨の価格を設定できます。 ゲーム内でプレイヤーがプロダクトを購入できるようにするには、価格を指定する必要があります。 |
Description | IAP プロダクトの簡単な説明。 このフィールドは、1 言語 (英語) でのみ説明できます。UDP コンソールで その他の言語を追加 できます。 |
IAP プロダクトに保存していない変更がある場合は、変更したプロダクトの隣に edited (編集) のラベルと総数が表示されます。これは、IAP プロダクトを同期すると消えます。
ノート: 別の Unity IAP パッケージを使用する場合は、Services > Unity Distribution Portal > IAP Catalog > Go to IAP Catalog を選択し、IAP Catalog ウィンドウで IAP プロダクトを定義します。
Settings
Settings セクションには、UDP コンソールから同期される追加の設定が含まれています。 Callback URL は唯一の編集可能な設定です。Push を押して変更を保存します。
フィールド | 機能 | 編集 |
---|---|---|
Game ID | ゲームの識別子 | 不可 |
Client ID | UDP クライアント識別子 | 不可 |
Client Key | UDP SDK の初期化に使用されます | 不可 |
Client RSA Public Key | コールバック通知の確認に使用されます | 不可 |
Client Secret | ゲームが UDP サーバーに送信するリクエストに署名する Unity キー | 不可 |
Callback URL | サーバーがコールバック通知を受け取るための URL を指定します | 可 |
UDP Sandbox Test Accounts
UDP Sandbox Test Accounts セクションでは、サンドボックス環境のログイン認証情報を加えます。これは、UDP サンドボックス環境でゲームをテストするのに必要です。UDP コンソールでもこの認証情報を設定できます。
フィールド | 機能 | 編集 |
---|---|---|
サンドボックステストのメールアドレス。UDP サンドボックス環境のみのログイン名として使用されます。 | 可 | |
Password | テストアカウントのパスワード。 | 可 |
QueryOrder パラメーター
注文について UDP にクエリを実行するには、HTTP GET リクエストを呼び出します。以下の表に、QueryOrder リクエストのパラメータを示します。
属性名 | 型 | 必須/任意 | 説明 | 例 |
orderQueryToken | String | 必須 | 購入の完了時にクライアントSDK から返される QueryOrder トークン。トークンはBase64 でエンコードされています (UDP SDK は PurchaseInfo.OrderQueryToken を返します)。 | eyJjaGFubmVsUHJvZHVjdElkIjoiaWFwLl9mM2YzZiIsImNoYW5uZWxUeXBlIjoiQVBUT0lERSIsImNsaWVudElkIjoiQUFJZ3g5VmNGaDJZQ1ZxbUs2VWNDUSIsImNwT3JkZXJJZCI6IjJhNGQ5MWY4NDgzZjQ3YjlhYzFhNGY5MDAwZDVhNTRhIiwicGFja2FnZU5hbWUiOiJjb20udW5pdHkudW5pdHl0ZXN0Z2FtZV9mZWZ3In0= |
orderId | String | 必須 | 購入の完了時にクライアント SDK から返される orderId。(UDP SDK はPurchaseInfo.GameOrderId を返します) | 2a4d91f8483f47b9ac1a4f9000d5a54a |
clientId | String | 必須 | clientId は、ゲーム情報 (UDP コンソールの統合情報) にあります。 | AAIgx9VcFh2YCVqmK6UcCQ |
sign | String | 必須 | orderQueryToken とクライアントシークレット MD5.hash (orderQueryToken + clientSecret) を使用して署名を生成します。 クライアントシークレットは、Game Info (UDP コンソールのインテグレーション情報) にもあります。 | Client Secret: KKcCyAgej06MxjKX31WuFNeHSaTJAjLDlgoDWsPJDAM Sign: 90a4e440897623c7cd0b2b80a97c267e |
ゲームが公開されているストアは、QueryOrder 応答を UDP に返します。UDPは、これらのパラメーターをゲームに転送します。以下の表に、QueryOrder 応答のパラメーターを示します。
属性名 | 形式 | 必須 /任意 | 説明 | 例 |
clientId | String | 必須 | ゲームが Unity IAP にクライアントを作成した後に Unity が返す clientId。 | Q4AnJDW2-rxLAPujqrk1zQ |
cpOrderId | String | 必須 | ゲームによって割り当てられた 注文 ID、またはゲームで生成されない場合は Unity。 | 66mea52wne |
storeOrderId | String | 任意 | ストアが返す注文ID。 | ストアには独自の注文ID形式があります |
channelType | String | 必須 | チャンネルタイプ。 | APTOIDE, CLOUDMOOLAH |
status | String | 必須 | 注文状態を示します。 | SUCCESS, FAILED, UNCONFIRMED, STORE_NOT_SUPPORT |
productId | String | 必須 | 注文に関連付けられたプロダクト ID。 | product_1 |
amount | String | 必須 | The payment amount of the order. | 1 |
quantity | Integer | 必須 | 注文の支払い金額。 | 1 |
currency | ISO 4217 | 必須 | プロダクトの購買に使用される通貨。 | CNY |
country | ISO 3166-2 | 必須 | ユーザーが所在する国または地域。 | CN |
paidTime | ISO8601 yyyy-MM-ddThh:mm:ssXXX, UTC timezone | 任意 | 注文の支払いが行われる時間を指定します。 | 2017-03-08T06:43:20Z |
rev | String | 必須 | 注文の変更 (更新のみ可)。 | 0 |
extension | Json String | 任意 | 参照情報を追加するために使用される開発者ペイロード。 | {"abc" : "123"} |
以下は、ゲームサーバーから UDP サーバーへのリクエストと、UDP サーバーからゲームサーバーへのレスポンスの例です。
orderQueryToken のコンテンツ
{"channelProductId":“iap._f3f3f”,“channelType”:“APTOIDE”,“clientId”:“AAIgx9VcFh2YCVqmK6UcCQ”,“cpOrderId”:“2a4d91f8483f47b9ac1a4f9000d5a54a”,“packageName”:“com.unity.unitytestgame_fefw”}
orderQueryToken (Base64 でエンコード)
eyJjaGFubmVsUHJvZHVjdElkIjoiaWFwLl9mM2YzZiIsImNoYW5uZWxUeXBlIjoiQVBUT0lERSIsImNsaWVudElkIjoiQUFJZ3g5VmNGaDJZQ1ZxbUs2VWNDUSIsImNwT3JkZXJJZCI6IjJhNGQ5MWY4NDgzZjQ3YjlhYzFhNGY5MDAwZDVhNTRhIiwicGFja2FnZU5hbWUiOiJjb20udW5pdHkudW5pdHl0ZXN0Z2FtZV9mZWZ3In0=
Order ID
2a4d91f8483f47b9ac1a4f9000d5a54a
Client ID
AAIgx9VcFh2YCVqmK6UcCQ
Client Secret
KKcCyAgej06MxjKX31WuFNeHSaTJAjLDlgoDWsPJDAM
Sign
90a4e440897623c7cd0b2b80a97c267e
リクエスト
GET
https://distribute.dashboard.unity.com/udp/developer/api/order?orderQueryToken=eyJjaGFubmVsUHJvZHVjdElkIjoiaWFwLl9mM2YzZiIsImNoYW5uZWxUeXBlIjoiQVBUT0lERSIsImNsaWVudElkIjoiQUFJZ3g5VmNGaDJZQ1ZxbUs2VWNDUSIsImNwT3JkZXJJZCI6IjJhNGQ5MWY4NDgzZjQ3YjlhYzFhNGY5MDAwZDVhNTRhIiwicGFja2FnZU5hbWUiOiJjb20udW5pdHkudW5pdHl0ZXN0Z2FtZV9mZWZ3In0%3D&orderId=2a4d91f8483f47b9ac1a4f9000d5a54a&clientId=AAIgx9VcFh2YCVqmK6UcCQ&sign=90a4e440897623c7cd0b2b80a97c267e
レスポンス
{"ClientId":"AAIgx9VcFh2YCVqmK6UcCQ","CpOrderId":"2a4d91f8483f47b9ac1a4f9000d5a54a","ProductId":"iap._f3f3f","ChannelType":"APTOIDE","Currency":"APPC","Amount":"0.1","Country":"HK","Quantity":1,"Rev":"0","Status":"SUCCESS","PaidTime":"2019-06-12T03:59:42Z","Extension":"unity://unity3d.com?cpOrderId=2a4d91f8483f47b9ac1a4f9000d5a54a\u0026payload=payload2"}
JSON ペイロード
以下は JSON ペイロードのコンテンツです。
属性名 | 型 | 必須/任意 | 説明 | 例 |
cpOrderId | String | 必須 | ゲームによって割り当てられた一意の注文識別子。 | 0bckmoqhel5yd13f |
status | String | 必須 | 注文のステータスを示します。 | SUCCESS |
amount | String | 必須 | 注文の金額を指定します。 | 1.01 |
productId | String | 必須 | 注文に含まれるプロダクトの一意の識別子を指定します。 | com.mystudio.mygame.productid1 |
paidTime | ISO8601 yyyy-MM-ddThh:mm:ssZ, UTC timezone | 任意 | 注文の支払いが行われた時刻。実際の支払いが行われていないサンドボックス環境でも、この値は返されます。 | 2018-09-28T06:43:20Z |
country | ISO 3166-2 | 必須 | 注文に対する支払いが行われた国。 | CHINA |
currency | ISO 4217 または 暗号通貨タイプ | 必須 | 注文が行われた国の通貨。 | CNY |
quantity | Integer | 必須 | 注文されたプロダクトの数。 | 1 |
clientId | String | 必須 | ゲームが Unity IAP でクライアントを生成した後に返される一意のクライアント識別子 | Q_sX9CXfn-rTcWmpP9VEfw |
extension | String | 任意 | 開発者向けのリファレンス情報を加えるために使用する開発者ペイロード。 | "{"key":"value"}" |