跳转至

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."
    }
  ]
}