道具内购介绍
通过微信后台配置的游戏道具,可以在游戏中进行内购,可以通过道具匹配模式或价格档位模式进行支付
价格档位模式(推荐方式)
通过微信后台配置的价格档位,游戏中的道具可以通过价格档位进行匹配,如下所示:
微信虚拟支付直购道具配置
道具 ID | 道具名称 | 道具价格 |
---|---|---|
1 | 价格档位 6 元 | 6 |
2 | 价格档位 12 元 | 12 |
3 | 价格档位 30 元 | 30 |
游戏道具配置
道具 ID | 道具名称 | 道具价格 | 对应价格档位 |
---|---|---|---|
P1 | 首充礼包 | 6 | 价格档位 6 元(ID 1) |
P2 | 许愿礼包 | 6 | 价格档位 6 元 (ID 1) |
P3 | 经验礼包 | 12 | 价格档位 12 元 (ID 2) |
P4 | 突破礼包 | 30 | 价格档位 30 元 (ID 3) |
优点:配置简单,微信价格档位只需配置一次,游戏道具通过价格档位匹配,无需等待微信审核,游戏道具配置灵活,可随时调整
缺点:游戏需要处理价格档位与道具的匹配逻辑
唤起游戏支付接口时通过notifyExt
传递游戏的道具信息
const { status, code, msg, data } = await NebulaSDK.pay({
tradeNo: "2024010100001",
// 6元价格档位
goodsId: "1",
// 6元价格档位
goodsPrice: 6000,
goodsName: "100钻石",
playerId: "1",
playerName: "1号玩家",
playerLevel: "1",
serverId: "1",
vipLevel: "1",
zoneId: "1",
sandbox: 0,
// 6元价格档位匹配的游戏
notifyExt: JSON.stringify({
goodsId: "P1",
goodsName: "首冲礼包",
goodsPrice: 6,
}),
});
if (status === "success") {
// 支付成功
} else {
// 支付失败
}
游戏服务端收到星云回调参数notify_ext
,解析道具信息,发放道具
// 1.游戏端收到参数:
// {
// ...其他参数,
// notify_ext: '{"goodsId":"P1","goodsName":"首冲礼包","goodsPrice":6}';
// }
// 2. 服务端解析参数,通过goodsId道具ID下发对应【首冲礼包】游戏道具
道具匹配模式
微信后台配置的道具与游戏中的道具一一对应,如下所示:
微信虚拟支付直购道具配置
道具 ID | 道具名称 | 道具价格 |
---|---|---|
1 | 首冲礼包 | 6 |
2 | 许愿礼包 | 6 |
3 | 经验礼包 | 12 |
4 | 突破礼包 | 30 |
游戏道具配置
道具 ID | 道具名称 | 道具价格 |
---|---|---|
1 | 首冲礼包 | 6 |
2 | 许愿礼包 | 6 |
3 | 经验礼包 | 12 |
4 | 突破礼包 | 30 |
道具配置流程
优点:配置简单,游戏道具与微信道具一一对应,无需额外的逻辑处理
缺点:道具配置较为繁琐,道具数量较多时,配置工作量较大,同时需要等待微信审核通过才能上线,游戏忘记提审会导致导购买异常