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/jsonAuthorization: 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)