跳轉至

發送消費信息

我們提供讓應用程式使用者請求退款時,將使用者消費資訊傳送至 App Store 的 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 商業/沙盒各 1 個 IP Hive 伺服器 IP 共 6 個
Note

目前消費資訊傳輸僅支援 Apple App Store。

運作流程

「消費資訊傳輸」 API 呼叫與回應的整體運作流程摘要如下。

  1. 應用程式:透過設定 API 端點準備伺服器 URL
  2. 應用程式:在 Hive 控制台中選擇啟用消費資訊傳輸,並註冊伺服器 URL
  3. 應用程式用戶端:在應用程式執行狀態下,同意傳輸應用程式內產品消費資訊
  4. 應用程式使用者:在應用程式中請求退款
  5. Hive 伺服器:向應用程式註冊的伺服器 URL 發送 POST API 請求,並從應用程式伺服器接收回應值作為消費資訊資料
  6. Hive 伺服器:將消費資訊傳輸至 App Store
Warning

如果應用程式用戶端不在同意彈出視窗中同意傳輸資訊,即使 Hive 伺服器從應用程式伺服器接收到資料,也無法將該資料傳輸至 App Store。

要傳輸至 App Store 的消費資訊中,也有僅存在於應用程式伺服器上的資料。在這種情況下,若要讓 Hive 伺服器將消費資訊傳輸至 App Store,應用程式伺服器必須先將資料傳遞給 Hive 伺服器。

應用程式伺服器 URL 是應用程式伺服器為了將資料傳遞給 Hive 伺服器,而在應用程式伺服器上開放的 API 端點。配置 API 端點並註冊為應用程式伺服器 URL 後,每當使用者請求退款時,Hive 伺服器就會向此 API 端點發送 POST 請求,並從應用程式伺服器接收所需的資料。Hive 伺服器會彙整這些資料,並代替應用程式完成向 App Store 傳輸消費資訊。


API 端點 (伺服器 URL) 配置

應用程式伺服器透過註冊為伺服器 URL 的 API 端點接收請求時,必須彙整應用程式使用者相關資料(consumption_statusplay_timerefund_preferencesample_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

Request body

請求本文資訊如下。

名稱 類型 必需 (必需: M, 選用: O) 描述
gameindex String M 應用中心遊戲索引
appid String M 應用中心 AppID
user_seq String M 應用程式內使用者 CS 代碼

請求本文範例如下。

{
    "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 數據庫通信錯誤