活动踩坑记录

活动踩坑记录

同游活动踩坑记录

流程

同游活动的整体流程如下:

整体流程较为简单,但是其中也藏了很多坑。记录如下,方便后续类似活动时避免踩坑:

沟通确定好游戏预计的开服时间

使用同玩券时,玩家需要选择区服和角色。但某些情况下,游戏未上线,此时需要对玩家使用同玩券进行限制。主要通过检测客户端时间是否达到游戏的开服时间。

必须提前沟通确定好游戏预计的开服时间,前后端同时做好时间校验,在写这部分限制代码时就写入最终的确定开发时间,避免后续遗忘更改时间。

此次活动由于心悦迟迟没有给出游戏开服时间,前端将时间限制在了12日00:00,其实游戏12日10点游戏才正式开放下载。

后门在发布现网时,一定要去除

同游活动由于游戏未正式上线,为了方便测试同学,留了若干后门方便测试。

后门主要有:

  1. 跳过开服时间限制
  2. 跳过角色选择限制

这些后门通过url参数的方式传入激活。

发布现网后,由于后门代码未删除,时间限制也失效,并且后端未对传入参数进行校验,12日凌晨00:00 至 00:30,后门暴露于现网约30分钟。部分用户进入到了后门当中,好在及时发现并且修复。有7名用户在此时间段内使用了同玩券。同后端同学协商后,去除了这些异常数据。

今后发布项目之前,一定要check一遍!去除所有后门,降低风险。

在设置后门时,也要谨慎,不要让后门成为流程无法走通时的备用选项,而是要主动判断,可以考虑和测试同学约定一个类似密钥的东西。

例子

// 获取参数
const no_check_data = _.query('no_check_data')
if (no_check_data === 'hard to guess string') {
    //进入后门
}

不要这样

if (_.query('no_check_data')) {
    //进入后门
}

更不要这样

if (window.Tgclub && window.Tgclub.chooseGameRole) {
    // 正常流程
}
else {
    //进入后门
}

开发前要对第三方提供的服务进行充分的验证。自测时也需要提高不同机型的覆盖率。

在同游活动开发中,前期开发时确认可以通过jsbridge唤起app的角色选择框,完成角色选择流程。

但是上线后发现,安卓虽然也能够唤起app 的角色选择框,却无法进入到回调当中。询问心悦那边的同学,答复是:对于安卓机型,回调要以字符串的形式传入,类似于eval函数进行执行。

经过测试后又发现,字符串传入的回调函数无法获取到this作用域,导致部分功能失效;通过把函数挂载到window上,避免了这一问题。

如果能够在开发前期就进行充分的验证,发现问题,就能够提前解决,防止在快上线时忙中生乱,影响上线时间。

和游戏运营的同学做好沟通

由于沟通不足,游戏上线后,我们才发现剑网3为刚开始创建了角色取了一个默认的游戏名:[武林新秀.1233223423],在开场动画过完之后,能够重新设置用户名。

使用默认用户名预约的用户,重新设置用户名之后,会使得主播无法通过用户名找到大R。

最后上线后,通过校验用户名,避免这一问题。