消費情報を送信する
追加サービスからの消費情報を送信するためにtransmitting consumption information from additional servicesを使用すると、アプリユーザーが返金を要求したときに、ユーザーの消費行動情報をアプリマーケットに送信できます。このAPIは、Hiveサーバーが開発者のアプリサーバーにリクエストを送信し、開発者のサーバーがHiveサーバーに応答を返すことを可能にします。
Note
現在、消費情報の送信はApple App Storeのみサポートされています。
概要¶
アプリマーケットに送信される消費者情報には、ゲームサーバーにのみ存在するデータも含まれています。したがって、Hive サーバーがこのデータをアプリマーケットに送信するには、ゲームサーバーが Hive サーバーにデータを渡さなければなりません。
ゲームサーバーのURLは、ゲームサーバーがデータをHiveサーバーに送信するために開かれたAPIエンドポイントです。以下のプロトコルに従ってAPIエンドポイントを設定し、ゲームサーバーのURLに登録した後、Hiveサーバーはユーザーが返金をリクエストするたびにこのAPIエンドポイントにPOSTリクエストを送り、ゲームサーバーから必要なデータを受け取ります。Hiveサーバーはこのデータを集約し、アプリ開発者に代わってアプリマーケットへの消費者情報の送信を完了します。
要約すると、全体のプロセスは次のとおりです。
- アプリ開発者: APIエンドポイントを設定してサーバーURLを準備する
- アプリ開発者: Hive コンソールで 消費情報伝送を有効にする を選択し、サーバーURLを登録する
- アプリユーザー: アプリが実行中の間に アプリ内製品の消費情報を伝送することに同意する
- アプリユーザー: アプリ内で返金をリクエストする
- Hive サーバー: アプリ開発者によって登録されたサーバーURLにPOST APIリクエストを送信し、データをレスポンスとして受け取る
- Hive サーバー: アプリマーケットに消費情報を伝送する
Warning
アプリのユーザーが同意ポップアップで情報の送信に同意しない場合、Hive サーバーはゲームサーバーからデータを受信しても、アプリマーケットにデータを送信しません。
APIエンドポイントの設定(サーバーURL)¶
サーバーURLに登録されるAPIエンドポイントは、リクエストを受信した際にゲームユーザー固有のデータ(consumption_status、play_time、refund_preference、sample_content_provided)を集約し、リクエストパラメータ内のユーザー情報(CS_CODE)を使用してクエリできる集約データで応答しなければなりません。
ファイアウォールルールを無効にする¶
ファイアウォールの受信ルールを無効にすると、ゲームサーバーとHiveサーバー間のAPI通信が可能になります。ゲームサーバーの以下のIPアドレスについて、ファイアウォールの受信ルールを無効にする必要があります。
| Hive サーバータイプ | IPアドレス | 
|---|---|
| 商用IP | 43.201.165.236 | 
| サンドボックスIP | 43.155.181.83 | 
ファイアウォールルールを無効にした後、APIエンドポイントを設定するための情報を以下に参照してください。
APIリクエスト (Hive サーバー → ゲームサーバー) 設定¶
これはHiveサーバーからゲームサーバーに送信されたPOSTリクエスト情報です。
| API情報 | 説明 | 
|---|---|
| メソッド | POST | 
| レスポンス形式 | JSON | 
| コンテンツタイプ | application/json | 
以下はリクエストボディの情報です。
| 名前 | タイプ | 必須 (必須: M, 任意: O) | 説明 | 
|---|---|---|---|
| gameindex | 文字列 | M | Hive アプリセンターゲームインデックス | 
| appid | 文字列 | M | Hive アプリセンターAppID | 
| user_seq | 文字列 | M | ゲーム内ユーザーCSコード | 
以下はリクエストボディの例です。
{
    "gameindex": "539",
    "appid": "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal",
    "user_seq": "222333"
}
APIレスポンス (ゲームサーバー → Hive サーバー) 設定¶
これは、応答が成功したときにゲームサーバーからHiveサーバーに送信されなければならない応答値情報です。
| 名前 | タイプ | 必須 (必須: M, 任意: O) | 説明 | 
|---|---|---|---|
| コード | 整数 | M | レスポンスコード (100: 成功) | 
| メッセージ | 文字列 | M | レスポンスコードに応じた結果メッセージ | 
| データ | オブジェクト | M | レスポンスデータ (レスポンスが成功した場合のみ返され、エラーの場合は返されません) | 
| ┕ 消費状況 | 整数 | M | 消耗品の消費状況 ("0" または "3" を固定値レスポンスとして選択する必要があります) | 
| ┕ プレイ時間 | 整数 | M | ゲームプレイ時間 | 
| ┕ 返金の好み | 整数 | M | 返金の好み | 
| ┕ 提供されたサンプルコンテンツ | 整数 | M | 提供されたサンプルコンテンツの状況 | 
以下は、レスポンスが成功したときのレスポンス値の例です。
// success
{
    "code": 100,
    "message": "OK",
    "data": {
        "consumption_status": 0,
        "play_time": 1,
        "refund_preference": 2,
        "sample_content_provided": 0
    }
}
以下は、レスポンス失敗の場合のレスポンス値の例です。
// Errors due to wrong parameters
{
    "code": 400,
    "message": "No parameter, or invalid parameter name."
}
// Errors due to invalid user information
{
    "code": 200,
    "message": "No data, or invalid cs_code."
}
こちらがレスポンスコードです。
| コード | 説明 | 
|---|---|
| 100 | 成功 | 
| 200 | 無効なユーザー情報 (CS_CODE) | 
| 400 | リクエストパラメータエラー | 
| 401 | リクエストJSONエラー | 
| 500 | サーバー処理エラー | 
| 501 | DB通信エラー |