四、奖励变量 #
#lfeng/wellplay/能力综述/奖励系统
变量是奖励系统中与用户交换数据的机制,引入变量的目的在于更灵活的控制上传后续动作中的内容组织和传递。可以认为变量是一种占位符,Wellplay会将占位符按约定替换为实际内容。
在配置奖励策略 (Reward Policy)时,可在奖励策略的ReturnBody和CallbackBody字段内容中使用变量。
变量分为两种: ~魔法变量~ 和 ~自定义变量~ 。
~魔法变量~ 是系统提供的一系列预定义变量,可直接使用。 ~自定义变量~ 由开发者提交。在SDK发起领奖时,由客户端通过SDK的接口动态传入,服务端会将这些上传参数的具体值传递给开发者。
魔法变量 #
魔法变量是一组预先定义的变量,可以使用 $(var) 或 $(var.field_name) 形式求值。
目前支持的魔法变量如下:
| 变量名 | 说明 |
|---|---|
| Role.ID | 请求领奖的角色ID |
| Reward.ID | 请求领取的奖品ID |
| APPReward.ID | 奖励的ID |
| APPReward.Count | 奖励中的奖品的数量(仅配置签到领奖时可以设定数量,其他情况均为1) |
| APPReward.CreateTimestamp | 奖励的创建时间戳 |
| APPReward.UpdateTimestamp | 奖励的最后一次修改时间戳 |
| APPReward.EffectTimestamp | 奖励的生效时间戳 |
| APPReward.ExpiresTimestamp | 奖励的过期时间戳 |
| APPCheckIn.Count | 签到领奖时,本月的累计签到次数 |
| RoleReward.ID | 角色的领奖记录ID |
| RoleReward.RewardStatus | 角色的领奖状态;1:Available-可领取,2:Accepted-已领取 |
| RoleReward.CreateTimestamp | 推式发奖时,为角色收到奖励的时间戳;拉式发奖时,为角色领取奖励的时间戳 |
自定义变量 #
应用客户端在上传请求中设定自定义变量的值。 Wellpaly收到这些变量信息后,置换掉ReturnBody和CallbackBody中的自定义变量设置,形成最终的反馈结果。
自定义变量的行为同魔法变量基本一致,但变量名必须以x:开始。
例子 #
用户设置了如下的CallbackBody:
{
"CallbackBody" :"Hello=$(x:Hello)&Foo=bar&RewardID=$(Reward.ID)"
}
这个例子中的$(Reward.ID)就是魔法变量,而$(x: Hello)就是自定义变量。