# 道具发放
# 接口说明
此接口用于标准抽奖或领取活动的道具发放结果输出。
# 使用场景
- 抽奖活动:在用户参与抽奖后,通过此接口返回抽奖结果,包括获得的道具、数量等信息。
- 领取活动:在用户满足领取条件并成功领取道具后,通过此接口返回领取结果。
# 请求示例
curl "https://s1.livelink.qq.com/livelink/?
apiName=ApiRequest&livePlatId=xx&actId=1201&gameId=cf&v=2.0&t=&nonce=&code=diVa28UpyL5G%2BVmKNVIcg%3D%3D&sig=e3909d0a2cb7f7d8f2ec03fb4ea96007" -d '{"flowId":"69f33ur0"}'
1
2
2
# 先决条件
- 示例中ID为:69f33ur0 的流程需要由腾讯游戏来联人员在流程结果配置中配置"【通用】ate事务发货接口"或"【通用】奖励发放接口"
# 输出举例
{
"iRet": 0,
"apiName": "Lottery",
"v": 2,
"jData": {
"message": "恭喜您获得了礼包: M4A1动力珍珠(7天)",
"packageId": 2396325,
"packageName": "M4A1动力珍珠(7天)",
"packageNum": 1,
"sPackageOtherInfo": "",
"sPackageRealFlag": "0",
"sCDKey": "xxxxx",
"ext": null
},
"sMsg": "ok",
"tid": "173180720695519508"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 发货幂等
为确保道具发货的幂等性,即确保同一发货操作无论执行多少次,其效果都与执行一次相同,我们提出以下优化方案:
全局唯一发货标识:平台侧在每次道具发货时,需生成一个全局唯一的serialCode。这个serialCode将作为此次发货操作的唯一标识。
发货流水生成:腾讯游戏来联系统接收到发货请求后,将基于提供的serialCode字段生成对应的发货流水记录。这个流水记录将用于追踪和验证发货状态。
网络异常处理:若在网络传输过程中遇到超时或平台侧未收到回复消息等异常情况,平台侧可利用之前生成的serialCode重新发起发货请求。腾讯游戏来联系统将根据serialCode检查对应的发货流水状态,以确保不会重复发货。
补发机制:对于因各种原因导致的发货失败情况,平台侧可通过补发系统重新发起发货请求。在补发请求中,同样需要附带原始的serialCode,以便腾讯游戏来联系统验证并处理。
安全性与一致性保障:通过严格的serialCode验证机制,确保每次发货操作的幂等性,避免因重复操作而导致的道具重复发放或数据不一致问题。
6.错误处理与日志记录:在发货过程中,所有操作都应被详细记录,并配备完善的错误处理机制。一旦出现异常情况,可迅速定位问题并进行相应处理。
综上,使用全局唯一的发货标识serialCode
和发货流水记录,确保道具发货操作的幂等性,提高系统的健壮性和数据的一致性。同时,也为平台侧提供了灵活的补发机制,以应对可能出现的各种异常情况。
# 参数说明
参数 | 类型 | 说明 |
---|---|---|
message | string | 操作提示信息,用于告知用户或开发者本次道具发放的结果或状态。 |
packageId | int | 当前活动下礼包组ID,可用于标识唯一礼包 |
packageName | string | 已发放礼包组的中文名称,该名称由腾讯游戏项目团队成员根据实际情况进行设定和更新。 |
packageNum | int | 当前发放的礼包个数 |
sPackageOtherInfo | string | 预留字段,礼包补充信息 |
sPackageRealFlag | string | 该是否为实物。1表示该道具为实物道具,0为游戏虚拟道具 |
sCDKey | string | 如果礼包包含CDKey,此字段将包含具体的CDKey值,合作平台应设计机制安全地展示给用户 |
ext | object | 扩展字段,默认为null。用于后续活动中对当前道具的额外描述或补充信息。 |