コンテンツにスキップ

消費情報を送信する

アプリユーザーが返金をリクエストする際に、ユーザーの消費情報をアプリストアに送信するAPIを提供します。

「消費情報伝送」APIは、HiveサーバーとアプリサーバーとのServer-to-Server通信方式で、Hiveサーバーがアプリサーバーに消費情報伝送リクエストを送信すると、アプリサーバーが応答値をHiveサーバーに返します。

サポート終了予定

App Store消費情報伝送V1は現在新規利用ができず、サービス終了予定です。新規構築および既存サービスの更新時には、必ずV2 APIを基準に実装してください。

V1 → V2の変更点

既存の消費情報伝送V1に対して、V2 APIで連携する変更点の要約です。

区分 V1 V2
リクエスト本文 gameindex, appid, user_seq gameindex, appid, server_id, player_id(=user_seq), transaction_id
消費状態 consumption_status (整数 0/3) delivery_status (文字列enum 5種)
play_time あり(必須) 削除
消費比率 なし consumption_percentageを追加(millipercent 0~100000)
refund_preference 整数、必須 文字列enum、任意
sample_content_provided 必須 任意
応答形式 code/message/data code/message/data (構造は同一、成功時の返却コード変更 100200)
ファイアウォールIP 本番/Sandbox単一IP Hive サーバーIP 6個
Note

現在、消費情報の送信はApple App Storeのみサポートされています。

動作フロー

「消費情報伝送」APIの呼び出しおよび応答の全体的な動作フローをまとめると、以下の通りです。

  1. アプリ: APIエンドポイントを構成してサーバーURLを準備
  2. アプリ: Hive コンソールで消費情報伝送の使用を選択し、サーバーURLを登録
  3. アプリクライアント: アプリを実行した状態でアプリ内商品の消費情報伝送に同意
  4. アプリユーザー: アプリで返金をリクエスト
  5. Hive サーバー: アプリで登録したサーバーURLにPOST APIリクエストを送信し、アプリサーバーから応答値として消費情報データを受信
  6. Hive サーバー: アプリストアに消費情報を送信
Warning

アプリクライアントで同意ポップアップで情報伝送に同意しない場合、Hive サーバーはアプリサーバーからデータを受信しても、これをアプリストアに送信できません。

アプリストアに送信する消費情報の中には、アプリサーバーにのみ存在するデータもあります。この場合、Hive サーバーが消費情報をアプリストアに送信するには、アプリサーバーが先にHive サーバーにデータを渡す必要があります。

アプリサーバーURLは、アプリサーバーがHive サーバーにデータを渡すために、アプリサーバー側で開放しているAPIエンドポイントです。APIエンドポイントを構成した後、アプリサーバーURLとして登録すると、ユーザーが返金をリクエストするたびにHive サーバーがこのAPIエンドポイントにPOSTリクエストを行い、必要なデータをアプリサーバーから受け取ります。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
Sandbox IP 43.155.181.83

ファイアウォールルールを解除した後、以下の内容を参考にAPIエンドポイントを構成します。


APIリクエスト(Hive サーバー → アプリサーバー)の構成

Hive サーバーからアプリサーバーに送信するPOSTリクエスト情報です。

API情報 説明
Method POST
Response Format JSON
Content-type application/json

Request body

リクエスト本文の情報は以下の通りです。

名称 タイプ 必須有無 (必須: M, オプション: O) 説明
gameindex String M アプリセンターゲームインデックス
appid String M アプリセンターAppID
user_seq String M アプリ内ユーザーCS CODE

リクエスト本文の例は以下の通りです。

{
    "gameindex": "539",
    "appid": "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal",
    "user_seq": "222333"
}

API応答(アプリサーバー → Hive サーバー)の構成

アプリサーバーからHive サーバーに返す情報です。

Response body

応答成功時に、アプリサーバーからHive サーバーに渡す必要がある応答値の情報です。

名称 タイプ 必須有無 (必須: M, オプション: O) 説明
code Integer M レスポンスコード (100: 成功)
message String M レスポンスコードに応じた結果メッセージ
data Object M レスポンスデータ
(レスポンスが成功した場合のみ返され、エラーの場合は返されません)
┕ consumption_status Integer M 消耗品の消費状況 ("0" または "3" を固定値レスポンスとして選択する必要があります)
┕ play_time Integer M ゲームプレイ時間
┕ refund_preference Integer M 返金の好み
┕ sample_content_provided Integer M 提供されたサンプルコンテンツの状況


応答成功の例は以下の通りです。

// 成功した場合
{
    "code": 100,
    "message": "OK",
    "data": {
        "consumption_status": 0,
        "play_time": 1,
        "refund_preference": 2,
        "sample_content_provided": 0
    }
}

応答失敗の例は以下の通りです。

// パラメータが誤っておりエラーが発生した場合
{
    "code": 400,
    "message": "No parameter, or invalid parameter name."
}
// 無効なユーザー情報 (CS_CODE) の場合
{
    "code": 200,
    "message": "No data, or invalid cs_code."
}

応答コード

コード 説明
100 成功
200 無効なユーザー情報 (CS_CODE) の場合
400 リクエストパラメータエラー
401 リクエストJSONエラー
500 サーバー処理エラー
501 DB通信エラー