领取订阅签到奖励
请求URL:
/subSignIn
请求方式:
- POST
参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| appId | 是 | string | 应用包 appId |
| udid | 是 | string | 设备 ID |
| sign | 是 | string | 接口签名 |
请求示例
{
"appId": "app-id",
"udid": "device-udid",
"sign": "request-sign"
}
返回示例
{
"code": 200,
"msg": "SUCCESS",
"data": {
"day": 1,
"amount": 20,
"raffleTicket": 1,
"subSignDay": 8,
"subSignDayLeft": 6,
"subSignTotalDayLeft": 12,
"subSignTimeLast": 1788105600,
"subSignType": 8,
"nextSubSignType": 9,
"balance": 120
}
}
返回参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | int | 状态码 |
| msg | string | 提示信息 |
| data | struct | 本次领取结果 |
| -day | uint8 | 本次使用的奖励配置天数,范围 1-7 |
| -amount | uint | 本次增加到钱包 balance 的钻石数量 |
| -raffleTicket | uint | 本次增加的抽奖券数量 |
| -subSignDay | uint | 该订阅类型奖池领取后的累计签到天数 |
| -subSignDayLeft | uint | 该订阅类型奖池领取后的剩余可领取天数 |
| -subSignTotalDayLeft | uint | 用户所有订阅类型奖池的剩余天数合计 |
| -subSignTimeLast | uint | 本次领取成功时间,秒级时间戳 |
| -subSignType | uint | 本次实际领取的订阅签到奖励类型 |
| -nextSubSignType | uint | 领取后下一批应领权益的类型;无剩余权益为 0 |
| -balance | float | 领取后的付费钱包余额 |
领取规则
- 每个服务端自然日最多领取一次,多个类型奖池不会增加每日领取次数。
- 每次购买生成一批独立权益,并保存该次真实购买的
type;切换订阅类型不会覆盖旧批次。 - 接口不接收
type,后台始终领取最早购买且仍有剩余天数的权益;老批次领完后自动转到下一批。 - 接口使用钱包字段
sub_sign_time_last判断当天是否已领取;领取成功后更新为当前秒级时间戳。 - 类型
56的当天用户流水会继续作为兼容旧数据的防重复领取依据。 - 奖励配置天数按照当前类型奖池的
(sub_sign_day % 7) + 1计算,第 8 次领取重新使用第 1 天配置。 - 断签不会重置累计进度,下次从上次位置继续领取。
- 订阅过期后,只要
sub_sign_day_left > 0,仍然可以继续领取。 - 配置表
amount增加钱包balance,并产生类型56的用户流水。 - 配置表
raffle_ticket增加钱包抽奖券。 - 即使奖励只有抽奖券、
amount=0,仍会产生类型56的流水作为当天领取记录。
状态码
| code | 说明 |
|---|---|
| 200 | 领取成功 |
| 510 | 奖励配置缺失或数据库错误 |
| 800 | 参数或签名错误 |
| 1030 | 当天已经领取 |
| 1050 | 没有剩余订阅签到权益 |