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/v2/external/api/finalize_purchase |
| Sandbox URL | https://sandbox-hiveiap.qpyou.cn/v2/external/api/finalize_purchase |
| HTTP Method | POST |
| HTTP Header | 用于应用服务器认证的 OAuth 2.0 Access Token (请参阅 发行 OAuth Token) |
| 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 "X-Access-Token: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImEwYWZlYjZlLTllYWItY2ZiMC03ZTMxLTNhNzMyZTQ5In0.eyJwcm9qZWN0X2lkIjoiY29tLmNvbTJ1cy5oaXZlc2RrIiwidG9rZW5fdHlwZSI6ImFjY2Vzc190b2tlbiIsImdyYW50X3R5cGUiOiJ1c2VyIiwiaWF0IjoxNzg5NDA2NzI5LCJleHAiOjE3ODk0MTAzMjksImF1dGhfdmVyIjoidjQiLCJ1c2VyX2lkIjoyMDAwMDAzMTM0MSwiaXNfd2hpdGVsaXN0IjpmYWxzZX0.MgPO-e-Gm_dErRcfjVPKFdrh9M1ywqpU5aBmrFDZihzA5kKCw_QjPZv-Sb94LmbrzIqYuGQu29tIbX9DhJg_SpschZ4dihLx75pt5fSqYkzXMNHsbDjP-A7Yn0yjqP8f9w0DD0B_20Vbw6WfUUImNLQK0UpKu9Pd6cOILImDOn9YSkc1ozuzGQ04jgihwSxtP8cRTNGn53aB89CbSzYZbUqdUtyCOY9q1BXeIlrq_4zd_YWoPPQjPd3uD3wt3cVNg4nfNfQ55PDXPTn-QCm_HsfnL12wrNFnD-UW9SlCvM6TouoErNFrLaQ3sYvgsek-n47-bylvzTGa7GAvakwuog" \
[https://sandbox-hiveiap.qpyou.cn/v2/external/api/finalize_purchase](https://sandbox-hiveiap.qpyou.cn/v2/external/api/finalize_purchase)