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)