无论做什么项目,引用第三方代码都是很常见的事,很多人对第三方 SDK 有一种莫名的信任(至少我是这样的),就是这种盲目的行为导致我在项目中犯了重大错误,影响了产品的上线使用。
我们目前正在做一个微信小程序项目,为了给项目增加统计功能,我们使用了的统计SDK。在产品测试阶段,我们遇到了一个问题:在小程序中调用wx.后,将加密数据传到服务器解密,解密失败。并且我们发现一个现象,每次新用户登录后,5分钟左右内都正常,然后解密失败。分析原因后,解密失败只能是因为过期,但是为什么会过期,我们一直找不到原因。这时我们犯了一个致命的错误,开始质疑是不是微信的bug,猜测小程序的开发版和体验版可能存在过期bug。没想到可能是第三方SDK的问题。最后的结果是产品上线后,这个问题依然存在。
这时候我开始重新审视整个项目,发现的SDK中还包含wx.code,这一步很可能会导致登录态刷新,从而导致我们的失败。果然,去掉SDK之后,一切运行正常。

总结
微信小程序使用第三方代码需谨慎,使用前严格检查代码中是否有调用微信API,可以全局搜索“wx.”,像登录或者需要用户授权的API很容易影响我们原有的功能和体验,一旦发现需要逐一排查,看看会有什么影响,最后再权衡是否使用第三方SDK。