# 道具发放

# 接口说明

此接口用于标准抽奖或领取活动的道具发放结果输出。

# 使用场景

  • 抽奖活动:在用户参与抽奖后,通过此接口返回抽奖结果,包括获得的道具、数量等信息。
  • 领取活动:在用户满足领取条件并成功领取道具后,通过此接口返回领取结果。

# 请求示例

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

# 先决条件

  • 示例中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

# 发货幂等

为确保道具发货的幂等性,即确保同一发货操作无论执行多少次,其效果都与执行一次相同,我们提出以下优化方案:

  1. 全局唯一发货标识:平台侧在每次道具发货时,需生成一个全局唯一的serialCode。这个serialCode将作为此次发货操作的唯一标识。

  2. 发货流水生成:腾讯游戏来联系统接收到发货请求后,将基于提供的serialCode字段生成对应的发货流水记录。这个流水记录将用于追踪和验证发货状态。

  3. 网络异常处理:若在网络传输过程中遇到超时或平台侧未收到回复消息等异常情况,平台侧可利用之前生成的serialCode重新发起发货请求。腾讯游戏来联系统将根据serialCode检查对应的发货流水状态,以确保不会重复发货。

  4. 补发机制:对于因各种原因导致的发货失败情况,平台侧可通过补发系统重新发起发货请求。在补发请求中,同样需要附带原始的serialCode,以便腾讯游戏来联系统验证并处理。

  5. 安全性与一致性保障:通过严格的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。用于后续活动中对当前道具的额外描述或补充信息。
lastUpdate: 4/15/2024, 9:52:03 AM