# 游戏自定义拉起红包活动
支持开发者在游戏内任意位置,通过调用 openlink 能力,让用户参与红包活动,并直接拉起红包活动主页。
# 一、能力简介
此前红包活动入口仅依赖「悬浮球 + 分享链路」,导致活动渗透还有较大的优化空间,因此平台为每个红包活动生成一个 openlink 字符串,开发者拿到后即可在游戏内任意位置(banner、按钮、任务面板等)放置红包入口,或针对不同分层用户进行个性化触达,直接拉起红包活动。
# 二、接入流程(三步)
Step 1 · 获取 openlink
在 MP 后台活动配置中,点击编辑,若活动处于「待生效 / 生效中」时展示 openlink 原文,直接复制。

Step 2 · 加载 load
调用PageManager.load,平台将完成用户校验
请注意,调用 load 时意味着触发让用户参与了红包活动,不管用户有没有点击
Step 3 · 打开 show
校验通过后调用 PageManager.show,打开红包活动主页。
说明:
show()若在load()之前调用,会自动先执行一次load()再展示。
# 三、平台校验规则
触发 load 即代表要向用户下发红包,平台后台在下发前校验以下条件,全部满足才触发参与:
安全风控、活动剩余时间至少 > 1天、奖励「有库存」、当前环境不属于 PC 与鸿蒙、参与限制、活动在有效期内且未被停用(正常进行中)
「进行中」指活动在持续时间内即为进行中,不受用户是否已领取奖励影响。
⚠️ 校验不通过的处理:返回错误码
-5,errInfo中填充统一提示:「用户暂时无法参与活动,可能是活动未开始、剩余时间不足 3 天、鸿蒙设备、库存不足、同时参与红包活动过多或平台判断疑似风险用户」。此时请勿给用户展示红包入口,或用户点击后进行拦截。
# 四、特殊诉求
平台会自动校验用户条件,并主动触发参与,此时会和 openlink 打开并存
如果希望平台不自动触发,可联系客服,关闭「自动触发入口」通路,让用户只能通过 openlink 或者被邀请来参与活动
# 五、示例代码
// 1. 创建 PageManager 实例
const pageManager = wx.createPageManager();
// 2. 加载 openlink(平台后台完成 7 项校验)
pageManager.load({
openlink: '替换为 MP 后台活动配置中的 openlink 原文'
}).then(() => {
// 校验通过,用户已成为活动参与者,打开红包活动主页
pageManager.show();
}).catch((err) => {
// 校验失败,按错误码处理
if (err.errCode === -5) {
// 业务校验未通过:不展示红包入口,或点击后拦截
console.log('业务报错:', err.errInfo);
} else {
console.error('load 失败:', err.errCode, err.errMsg);
}
});
参考文档:PageManager.load · PageManager.show