跳轉至

IAP v4 确认购买

商品消費處理 API 是用於處理消耗型商品購買記錄消費的 API。

Google Play

Google Play 消耗型商品消費 API 是用於處理透過 Google Play 支付的消耗型商品購買記錄消費的 API,代為執行 Google Play Developer API 的 consume 功能。如果應用程式內支付後在一定時間內(例如 3 天)未完成消費處理,Google Play 會自動退款。因此,應用程式伺服器在完成向使用者發放道具後,必須立即呼叫此 API 進行消費處理。

Google 市場帳號設定事前說明

要使用 Google Play 消耗型商品消費 API,必須先完成 Google Market Account 設定。

注意重複呼叫

本 API 每張收據只能呼叫 1 次。如果使用已完成消費處理的收據再次呼叫,result 回應代碼將返回 1000535(Market API response was answered as failed.)。

Request URL

項目 內容
正式 URL https://hiveiap.qpyou.cn/external/api/finalize_purchase
Sandbox URL https://sandbox-hiveiap.qpyou.cn/external/api/finalize_purchase
HTTP Method POST
HTTP Header Content-Type: application/json
Authorization: Bearer {API_KEY}
(※ Bearer 權杖是在 App Center > 專案管理 > 遊戲列表 > 選擇遊戲 > 遊戲詳細資訊 > 基本資訊 中的 Hive 認證金鑰值。)
Data Format JSON

Request body

欄位名稱 類型 必填 說明
purchase_bypass_info String Y 從 Hive SDK 擷取的購買使用者、裝置及收據資訊。

IAP v4 應用程式內購買時,將透過 Hive SDK v4 IAPV4 類別的 Purchase() 或 Restore() 方法回呼接收的 IAPV4Receipt 物件的 bypassInfo(Base64 編碼的 JSON 字串),依「Hive SDK v4 → 應用程式用戶端 → 應用程式伺服器 → IAP v4 Google 消耗型商品消費 API 伺服器」的順序傳遞。

※ 該值必須按原樣使用,應用程式用戶端或應用程式伺服器不得直接解析或修改。

Response body

欄位名稱 類型 必填 說明
result Integer Y 回應代碼(0:成功,其他:失敗。詳細代碼請參考下方 Result codes)
result_msg String Y 回應訊息
finalize_result Array N 消費處理結果列表。(僅供參考,不得用於應用程式伺服器判斷道具發放成功/失敗的邏輯。)
└ market_transaction_id String N 嘗試進行消費處理的市場交易(訂單)ID
└ result_code Integer N Google Play Developer API 返回的消費處理結果代碼
└ result_message String N Google Play Developer API 返回的消費處理結果訊息

Result codes

Code Message 說明
0 Success 消費處理成功
1000006 The required parameter info is missing. 缺少必填參數時
1000504 The Google public key hasn't been registered. 未註冊 Google 服務帳號金鑰資訊時
1000520 Failed to authenticate the API Key. App Center 簽發的 Bearer 權杖認證失敗
1000535 Market API response was answered as failed. Google Play Developer API 回應結果為失敗時
(※ 可在 finalize_result 下的 result_code 和 result_message 中確認詳細原因)

Request example

curl -L -v \
-d '{"purchase_bypass_info":"eyJ1aWQiOiIiLCJhbmFseXRpY3NfaWQiOiJqbXRsZkcwb1FZQzdlM3dVVDQ2cHJ3PT0i...(省略)..."}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNjAzNzc4OTU2LCJqdGkiOiIxODczMTExMzIwIn0.OxWo4R6UdI0BLP1ckt8RlMFrPAb5H7TNedmLFV1Cawc" \
[https://sandbox-hiveiap.qpyou.cn/external/api/finalize_purchase](https://sandbox-hiveiap.qpyou.cn/external/api/finalize_purchase)

Response example

{
  "result": 1000535,
  "result_msg": "Market API response was answered as failed.",
  "finalize_result": [
    {
      "market_transaction_id": "GPA.3373-7176-8955-08026",
      "result_code": 400,
      "result_message": "The product purchase is not owned by the user."
    }
  ]
}