# 商城
# 功能讲解
小游戏商城,旨在提供多支付场景、用户付费运营等能力。开发者可以根据需求将已发布的道具在“商城管理”模块上架至你的小游戏商城,届时即能支持用户在商城进行道具购买。
# 功能入口
路径:微信公众平台(mp.weixin.qq.com)-虚拟支付2.0-基本配置-商城管理
# 效果展示
# 功能介绍
模块 | 介绍 | 描述 |
---|---|---|
基础功能 | 道具介绍 | 支持配置道具名称、道具描述、道具图片 |
定价 | 支持设置原价、售卖价,会自动换算折扣(定价单位为人民币/元) | |
上下架 | 支持配置上架时间,定时上下架等 | |
库存/限购 | 支持配置库存总量和限购次数(支持周、日、永久等限购规则) | |
优势功能 | 大额下单 | 支持更自由,更大额度的支付档位(如8888元、123元等) |
合并下单 | 支持单道具合并支付(如6元道具,可一次性下单10份) | |
游戏圈入口 | 支持游戏圈开通商城专属入口 | |
私域曝光 | 支持配置入口链接,可发布到社群、公众号等私域场景 | |
专属活动 | 接入商城还有机会参与专属的主题/促销/裂变活动 |
# 功能答疑
如何接入?
a) 可参考下方文档,需要游戏侧技术开发,平台可提供部分技术支持接入成本?
a) 通常在1-3日mgam游戏圈入口该如何配置?
a) 商城接入完成后,自动开通,目前仅安卓可见商城分成
a) 与安卓内购分成一致
# 开发者配置流程
“配置道具-上架商城-完善发货配置”,仅需三步简单配置
使用道具直购能力 在“虚拟支付2.0-基本配置-道具配置”中,基于道具直购能力,配置特定的道具信息。同时,配置好的道具也可以在游戏内使用,具体见道具直购文档。
配置商城上下架 在“虚拟支付2.0-基本配置-商场管理”中配置道具的上下架,输入在道具直购页面发布成功的道具 id,可自动拉取道具信息,同时开发者可以补充相关商场描述和设定道具限量策略。
完善消息推送与发货 第一步配置接受发货消息的后台服务器地址,具体可参考文档小游戏消息推送。
第二步开启消息推送开关,游戏内直购道具在“虚拟支付2.0-基本配置-道具配置”开启,商城道具在“虚拟支付2.0-基本配置-商场管理”开启,开启前会进行一个小测试,会发送 mock 数据通知开发者,开发者需要正确回包。
# 开发者开发流程
加粗部分需要开发者开发
# 支付类订阅事件公共说明
所有事件基础结构如下
字段 | 类型 | 说明 |
---|---|---|
CreateTime | Number | 消息发送时间 |
MsgType | String | 消息类型,道具发货场景固定为:event |
Event | String | 事件类型 与商城有关的事件类型 (1)拉取用户最近玩过的游戏角色数据 minigame_query_recent_role_list (2)道具直购类商城发货通知 minigame_h5_goods_deliver_notify |
MiniGame | Object | 具体消息内容,见MiniGame |
- MiniGame | 字段 | 类型 | 说明 | | --- | --- | --- | | Payload | String | 携带的具体内容,格式为json,具体内容如下表格Payload(因为这里需要对消息内容统一签名,所以统一把消息内容设计成json格式) | | PayEventSig | String | 见支付类订阅事件签名算法说明(PayEventSig) |
# 拉取用户最近玩过的游戏角色数据(Event=minigame_query_recent_role_list)
注意:
- 拉取的分区名/角色名均会经过安全审核,如果审核出现问题,违规词会用特殊处理
- 事件为实时通知
# 请求参数
- Payload
字段 | 类型 | 说明 |
---|---|---|
OpenId | String | 用户openid |
NeedRoleNum | Number | 需要的最近玩过的角色数量,不会超过20个 |
ProductId | Number | 道具id(仅道具购买页传入) |
GoodsPrice | Number | 道具价格(仅道具购买页传入) |
- 返回参数
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
ErrCode | Number | 是 | 发送状态。0:成功,其他:失败 |
ErrMsg | String | 否 | 错误原因,用于调试。在errcode非0 的情况下可以返回 |
RecentPlayedRoleList | Array<UserRoleInfo> | 是 | 最近玩过的角色列表 |
- UserRoleInfo
字段 | 类型 | 说明 |
---|---|---|
RoleId | String | 游戏角色id标识 |
RoleName | String | 游戏角色名 |
ZoneInfoList | Array<ZoneInfo> | 用户角色对应的分区,可能存在大区/中区/小区等,按由大到小的顺序 |
PayParam | PayParam | 米大师下单需要的支付参数(请求参数若带道具 id,此参数必填,用来下单支付) |
- ZoneInfo
字段 | 类型 | 说明 |
---|---|---|
ZoneId | String | 自定义分区id |
ZoneName | String | 自定义分区名 |
- PayParam
字段 | 类型 | 说明 |
---|---|---|
MidasZoneId | String | 米大师分区id |
Attach | String | 附加数据,在查询API和通知中原样返回,可作为自定义参数使用 |
注意:这里游戏角色的分区若存在层级概念,请按照实际的层级填写,例如:用户在电信一区-测试服-1号线,请按由大到小的顺序 分为三层(不同游戏层次数量可以不一样)返回,例如
{
"ZoneInfoList":[
{
"ZoneId":"testbigzoneid",
"ZoneName":"电信一区"
},
{
"ZoneId":"testmiddlezoneid",
"ZoneName":"测试服"
},
{
"ZoneId":"testsmallzoneid",
"ZoneName":"一号线"
}
]
}
- JSON格式示例 请求
{
"CreateTime": 1583202606,
"MsgType": "event",
"Event": "minigame_query_recent_role_list",
"MiniGame": {
"Payload": "{\"OpenId\":\"to_user_openid\",\"NeedRoleNum\":10,\"ProductId\":\"xxx\",\"GoodsPrice\":123}",
"PayEventSig": "f749f67b751fa80f27ddc0b7c8d2821aeda162ea22b323cd64a2c8056c2736f0"
}
}
- 成功返回
{
"ErrCode":0,
"ErrMsg":"success",
"RecentPlayedRoleList":[
{
"RoleId":"testroleid",
"RoleName":"小游戏开发者",
"ZoneInfoList":[
{
"ZoneId":"testbigzoneid",
"ZoneName":"电信一区"
},
{
"ZoneId":"testmiddlezoneid",
"ZoneName":"测试服"
},
{
"ZoneId":"testsmallzoneid",
"ZoneName":"一号线"
}
],
"PayParam":{
"MidasZoneId":"1",
"Attach":"{\"custom_data\":\"xxx\"}"
}
}
]
}
- 失败返回
{"ErrCode":99999,"ErrMsg":"internal error"}
# 道具直购类商城发货通知(Event=minigame_h5_goods_deliver_notify )
见道具发货消息协议,仅修改event为minigame_h5_goods_deliver_notify,协议内容一致。