发送消费信息
本 API 用于在应用用户请求退款时,将用户消费信息发送到应用商店。
'消费信息传输' API 通过 Hive 服务器与应用服务器之间的 Server-to-Server 通信方式运作:Hive 服务器向应用服务器发送消费信息传输请求后,应用服务器将响应值返回给 Hive 服务器。
即将停止支持
App Store 消费信息传输 V1 目前已无法新申请使用,且即将终止服务。无论是新搭建还是更新现有服务,请务必以 V2 API 为准进行实现。
V1 → V2 变更点¶
以下是与现有 消费信息传输 V1 相比,V2 API 对接时的变更摘要。
| 分类 | V1 | V2 |
|---|---|---|
| 请求正文 | gameindex, appid, user_seq | gameindex, appid, server_id, player_id(=user_seq), transaction_id |
| 消费状态 | consumption_status(整数 0/3) | delivery_status(字符串枚举 5 种) |
play_time | 有(必需) | 已删除 |
| 消费比例 | 无 | 新增 consumption_percentage(millipercent,0~100000) |
refund_preference | 整数,必需 | 字符串枚举,可选 |
sample_content_provided | 必需 | 可选 |
| 响应形式 | code/message/data | code/message/data(结构相同,成功返回代码由 100 变更为 200) |
| 防火墙 IP | 生产环境/Sandbox 单个 IP | Hive 服务器 IP 6 个 |
Note
目前,消费信息的传输仅支持苹果App Store。
操作流程¶
以下概述了“消费信息传输” API 调用及响应的整体操作流程。
- 应用:配置 API 端点以准备服务器 URL
- 应用:在 Hive 控制台中选择启用消费信息传输,注册服务器 URL
- 应用客户端:在应用运行状态下同意传输应用内商品消费信息
- 应用用户:在应用中请求退款
- Hive 服务器:向应用注册的服务器 URL 发送 POST API 请求,从应用服务器接收响应值形式的消费信息数据
- Hive 服务器:向应用商店传输消费信息
Warning
如果应用客户端未在同意弹窗中同意信息传输,即使 Hive 服务器从应用服务器接收到数据,也无法将其传输到应用商店。
要传输到应用商店的消费信息中,也包含仅存在于应用服务器上的数据。在这种情况下,若要让 Hive 服务器将消费信息传输到应用商店,应用服务器必须先将数据传递给 Hive 服务器。
应用服务器 URL 是应用服务器为向 Hive 服务器传递数据而开放的 API 端点。配置好 API 端点并注册为应用服务器 URL 后,每当用户请求退款时,Hive 服务器都会向该 API 端点发送 POST 请求,并从应用服务器接收所需数据。Hive 服务器会汇总这些数据,并代表应用完成向应用商店传输消费信息。
API 端点(服务器 URL)配置¶
应用服务器在通过注册为服务器 URL 的 API 端点接收请求时,必须汇总每个应用用户的数据(consumption_status、play_time、refund_preference、sample_content_provided),并将可以通过请求参数中的用户信息(CS_CODE)查询到的汇总数据作为响应返回。
禁用防火墙规则¶
禁用防火墙入站规则,以允许应用服务器与 Hive 服务器之间进行 API 通信。您需要在应用服务器上禁用以下 IP 地址的防火墙入站规则。
| Hive 服务器类型 | IP 地址 |
|---|---|
| 商业 IP | 43.201.165.236 |
| 沙盒 IP | 43.155.181.83 |
禁用防火墙规则后,请参阅以下信息以配置API端点。
API 请求(Hive 服务器 → 应用服务器)配置¶
这是从 Hive 服务器发送到应用服务器的 POST 请求信息。
| API 信息 | 描述 |
|---|---|
| 方法 | POST |
| 响应格式 | JSON |
| 内容类型 | application/json |
Request body¶
请求正文信息如下所示。
| 名称 | 类型 | 必需 (必需: M, 可选: O) | 描述 |
|---|---|---|---|
| gameindex | 字符串 | M | Hive 应用中心游戏索引 |
| appid | 字符串 | M | Hive 应用中心AppID |
| user_seq | 字符串 | M | 应用内用户CS代码 |
请求正文示例如下所示。
{
"gameindex": "539",
"appid": "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal",
"user_seq": "222333"
}
API 响应(应用服务器 → Hive 服务器)配置¶
这是应用服务器返回给 Hive 服务器的信息。
Response body¶
响应成功时,应用服务器需要传递给 Hive 服务器的响应值信息如下。
| 名称 | 类型 | 必需(必需:M,选用:O) | 描述 |
|---|---|---|---|
| code | 整数 | M | 响应代码(100:成功) |
| message | 字符串 | M | 根据响应代码的结果消息 |
| data | 对象 | M | 响应数据 (仅在响应成功时返回,出错时不返回) |
| ┕ consumption_status | 整数 | M | 消耗品的消费状态(“0”或“3”必须作为固定值响应选择) |
| ┕ play_time | 整数 | M | 游戏播放时间 |
| ┕ refund_preference | 整数 | M | 退款偏好 |
| ┕ sample_content_provided | 整数 | M | 提供的示例内容状态 |
以下是响应成功时响应值的示例。
// success
{
"code": 100,
"message": "OK",
"data": {
"consumption_status": 0,
"play_time": 1,
"refund_preference": 2,
"sample_content_provided": 0
}
}
以下是响应失败时响应值的示例。
// Errors due to wrong parameters
{
"code": 400,
"message": "No parameter, or invalid parameter name."
}
// Errors due to invalid user information
{
"code": 200,
"message": "No data, or invalid cs_code."
}
响应代码¶
| 代码 | 描述 |
|---|---|
| 100 | 成功 |
| 200 | 无效的用户信息 (CS_CODE) |
| 400 | 请求参数错误 |
| 401 | 请求 JSON 错误 |
| 500 | 服务器处理错误 |
| 501 | 数据库通信错误 |