消費情報を送信する
アプリユーザーが返金をリクエストする際に、ユーザーの消費情報をアプリストアに送信する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 (構造は同一、成功時の返却コード変更 100 → 200) |
| ファイアウォールIP | 本番/Sandbox単一IP | Hive サーバーIP 6個 |
Note
現在、消費情報の送信はApple App Storeのみサポートされています。
動作フロー¶
「消費情報伝送」APIの呼び出しおよび応答の全体的な動作フローをまとめると、以下の通りです。
- アプリ: APIエンドポイントを構成してサーバーURLを準備
- アプリ: Hive コンソールで消費情報伝送の使用を選択し、サーバーURLを登録
- アプリクライアント: アプリを実行した状態でアプリ内商品の消費情報伝送に同意
- アプリユーザー: アプリで返金をリクエスト
- Hive サーバー: アプリで登録したサーバーURLにPOST APIリクエストを送信し、アプリサーバーから応答値として消費情報データを受信
- 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
}
}
応答失敗の例は以下の通りです。
応答コード¶
| コード | 説明 |
|---|---|
| 100 | 成功 |
| 200 | 無効なユーザー情報 (CS_CODE) の場合 |
| 400 | リクエストパラメータエラー |
| 401 | リクエストJSONエラー |
| 500 | サーバー処理エラー |
| 501 | DB通信エラー |