# 小游戏礼包
# 功能介绍
小游戏开发者的游戏内道具,可通过接入平台「礼包系统」,在微信平台各场景发放游戏礼包。 发放场景包括:游戏圈、活动运营工具、发现-游戏-福利中心、广告、搜索等
# 功能接入
道具礼包发货基于微信小游戏统一的消息推送能力,因此在使用礼包中心的发货回调时,需要开发者服务器处理好消息推送的协议。 注意:MP 配置消息回调地址只有 1 个,所有消息推送场景都会使用该通道,所以需要先根据 MsgType 与 Event 来判断消息类型,进行相应的处理。这里,只介绍道具发货相关消息的处理协议,其他消息参考对应文档说明。
# 1. 接入消息推送能力
参考 接入文档。如果已经接入过,可跳过该步骤。
# 2. 道具发货消息协议
# 请求
字段 | 类型 | 说明 |
---|---|---|
CreateTime | Number | 消息发送时间 |
MsgType | String | 消息类型,道具发货场景固定为:event |
Event | String | 事件类型, 道具发货场景固定为:minigame_deliver_goods |
MiniGame | Object | 发货参数 |
# MiniGame
字段 | 类型 | 说明 |
---|---|---|
OrderId | String | 订单唯一 id。 开发者服务器可用于消息去重 |
IsPreview | Number | 是否预览调试 |
ToUserOpenid | Number | 接收道具的玩家 openid |
Zone | Number | 分区。1001: iOS, 2001: Android、PC |
GiftTypeId | Number | 发货礼包类型:1- 每日签到礼包 2- 周福利礼包 6-每日登录礼包 3- 日常版本更新活动 4-游戏圈活跃任务 8 - 游戏圈创作任务 |
GiftId | String | 礼包 ID(可在 MP 配置好礼包后,提前获取) |
SendTime | Number | 玩家接收道具的时间 |
GoodsList | Array of GoodsInfo | 发货列表 |
# GoodsInfo
字段 | 类型 | 说明 |
---|---|---|
Id | String | 游戏道具 id 标识 |
Num | Number | 发送的道具数量 |
# 返回参数
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
ErrCode | Number | 是 | 发送状态。0:成功,其他:失败 |
ErrMsg | String | 否 | 错误原因,用于调试。在 errcode 非 0 的情况下可以返回 |
SubErrCode | Number | 否 | 具体失败错误码,见 SubErrCode 枚举值。指定的失败场景返回指定值,对应平台不同的重试、熔断策略 |
# SubErrCode 枚举值
值 | 说明 |
---|---|
172935494 | 未注册用户,无法发货 |
# XML 格式示例
# 请求
<xml>
<CreateTime>1583202606</CreateTime>
<MsgType><![event]]></MsgType>
<Event><![CDATA[minigame_deliver_goods]]></Event>
<MiniGame>
<OrderId>r_123</OrderId>
<IsPreview>1</IsPreview>
<ToUserOpenid>to_user_openid</ToUserOpenid>
<Zone>1001</Zone>
<GiftTypeId>1</GiftTypeId>
<GiftId>gift_id_xxx</GiftId>
<SendTime>1583202600</SendTime>
<GoodsList>
<Id>id_100001</Id>
<Num>3</Num>
</GoodsList>
</MiniGame>
</xml>
# 返回
<xml>
<ErrCode>0</ErrCode>
<ErrMsg>Success</ErrMsg>
</xml>
# JSON 格式示例
# 请求
{
"CreateTime": 1583202606,
"MsgType": "event",
"Event": "minigame_deliver_goods",
"MiniGame": {
"OrderId": "r_123",
"IsPreview": 1,
"ToUserOpenid": "to_user_openid",
"Zone" : 1001,
"GiftTypeId" : 1,
"GiftId" : "gift_id_xxx",
"SendTime" : 1583202600,
"GoodsList": [{ "Id": "id_100001", "Num": 3 }]
}
}
# 返回
{"ErrCode":0,"ErrMsg":"Success"}
# 注意事项
道具发货成功需要返回明确的回包,参考前面的协议说明。若发货应答不符合规范、超时或者返回错误码非 0,将重新发送通知。在通知一直不成功的情况下,会发起多次通知,通知频率为 2^n 分钟(2 分钟/4 分钟/8 分钟……/1024 分钟)。 如果发货失败超过一定阈值,将触发平台的熔断策略。该礼包/道具 将可能会被停用。停用后,需开发者重新调试、测试通过后上线。
# 功能配置步骤
# 第 1 步 - 道具配置
- 开发者可在「MP 后台-功能-运营功能管理-游戏礼包道具」,添加游戏道具。
- 道具 ID 为该道具的唯一标识,后续不可以修改。道具名称、icon 将用于各场景的前端展示。
- 道具名称 不可以有重名。
# 第 2 步 - 道具测试、发布
- 发布前,道具需要先在 MP 上发货成功及测试通过后才可以提交。提交后,平台会进行审核,审核通过后自动发布。发布后才可配置礼包。审核需要 3-7 工作日。
- 发布后,开发者仍然可以通过 MP 进行道具测试,但测试失败次数较多时,可能导致道具被系统停用。停用后,需要重新测试成功才可以上线。
# 第 3 步 - 礼包配置、测试、发布
新建配置礼包,需要满足 信用分>90 且 累计注册用户>1000。如果需要修改礼包内容,需先停用礼包,重新建礼包。
已支持开发者配置礼包类型:
- 每日签到礼包:打开游戏圈福利,即可领取。发布后,C 端立即生效。开发者需要先配置「每日签到礼包」,才可配置其他小游戏礼包功能
- 周六福利日礼包:每周六打开游戏圈可领取。发布后,C 端立即生效。
- 每日登陆礼包:今日登录游戏后可领。发布后,C 端立即生效。
- 游戏圈礼包:用于 游戏圈 内,配置话题任务等。新建礼包,需要游戏圈加圈用户>1000。发布后,需在「游戏圈配置」关联活动后才生效。
# 注意
- 开发者需要保证礼包发货稳定且真实有效发放,如发货接口调用失败频繁或用户投诉,平台将对对礼包停用。