美团扫码付小程序的优化实践

美团扫码付小程序的优化实践
最新回答
纸墨清香

2026-03-01 19:39:36

美团扫码付小程序的优化实践主要围绕提升支付转化率展开,从外部环节(扫码到进入小程序)和内部环节(进入小程序到支付)两个维度进行优化,具体实践如下:

外部环节优化
  • 问题发现:扫码到小程序调起环节为黑盒,但发现扫码付小程序在此环节丢失率较高,多数用户手动点击右上角退出,推测是等待时间过长,而资源准备(小程序代码下载或更新)对时间影响较大。
  • 优化措施

    增加分包加载机制:用户使用扫码付业务时按需加载,优化小程序首次启动的下载时间。

    减小主包和分包大小:

    将整包中占 50%大小的图片分发到 CDN。

    把部分可移出的业务分发到其他分包。

    提出独立分包概念:因业务性质无法继续缩减主包,向微信小程序提出独立分包概念,用户使用独立分包时无需下载主包。

  • 优化效果:扫码付分包从原先的整包 3M 缩减到 361K(主包 300K + 分包 61K),外部环节转化率提升 3%。独立分包加载目前处于灰度阶段,扫码付小程序团队作为内测用户体验,优化效果待后续分享。
内部环节优化
  • 数据监控

    业务核心流程监控:对进入小程序和支付进行关键动作拆解,从开始扫码到用户看到页面,再到点击支付、初始化订单、支付成功,针对每一步可控环节进行技术指标拆解,制定关键指标(扫码加载转化率、点击意愿等),形成漏斗产出多个可量化指标,用于业务流程监控。

- 异常监控: - 接口异常:在 API(wx.request)的 fail 函数中直接捕获上报监控;单独封装接口请求超时,避免统一超时设置不适用所有场景。 - 微信 API 异常:通过微信的一些 fail 进行监控。

- 性能监控:关注进入小程序后的白屏时间和可交互时间。内部白屏时间从 onLoad 处打点到页面 onReady 处结束;内部可交互时间从 onLoad 处打点到页面数据请求结束后的可点击支付时间截止。
  • 问题优化

    接口合并:支付页面外网链路接口请求数量多,合并接口可减少问题出现概率,提升中间流程转化率。

    增加重试机制:

    适用情况:自有接口请求异常和小程序 API 调用异常在接口超时、调用失败时采取重试。

    控制方式:页面可重试次数在前置获取全局配置时根据“可重试次数”控制,每次重试需一段时间后用户手动触发,超过重试次数则流程终止。

内部和外部环节监控
  • 外部环节监控:利用微信扫码后在 query 参数上附带的 scancode_time 字段(用户使用扫一扫时微信服务端记录的时间),实时监控支付页面的白屏时间(用户看到首屏的客户端时间—用户微信扫一扫服务端时间 + 服务端客户端差额时间)和支付页面的用户可交互时间(页面 Loading 完毕时间—用户微信扫一扫服务端时间 + 服务端客户端差额时间)。为保证上报准确性,在每次 onLoad 时取服务端时间,记录客户端与服务端时间差额,后续涉及服务端时间参照此差额计算。
  • 内部环节监控:针对扫码付小程序特殊应用场景,在内部业务流程方面做更细粒度的监控统计。

    根据上报的场景划分:实时性监控部分与统计部分。

    根据上报的类型划分:Error 类型、Event 类型(普通生命周期事件)、Metric 类型(自定义 Event 类型,维度可自定义)、自定义测速类型(延时趋势与分布)。