# 游戏自定义拉起红包活动

支持开发者在游戏内任意位置,通过调用 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 与鸿蒙、参与限制、活动在有效期内且未被停用(正常进行中)

「进行中」指活动在持续时间内即为进行中,不受用户是否已领取奖励影响。

⚠️ 校验不通过的处理:返回错误码 -5errInfo 中填充统一提示:「用户暂时无法参与活动,可能是活动未开始、剩余时间不足 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

点击咨询小助手