微信小程序快速接入实践

微信小程序作为一种轻量级移动应用形式,体系发展已经日趋成熟。以微信小程序作为主要载体的应用也越来越多。投入少,见效快,自然的获取用户渠道是其优势所在。笔者恰好经历了2018年小程序大爆发时期,也义无反顾地踏入过这趟浑水。无论如何,最终留下的经验才是最宝贵的,也就是这里将要介绍的一套快速接入微信小程序后端开发迭代方案。

引言

这里之所以说是快速接入小程序的后端开发迭代方案,其原因有三:

  • 小程序前端基于javascript语法,提供了一些内置扩展组件以及一套成熟的设计标准,在开发上没有任何余地,也无需优化。
  • 小程序后端最基本的登录功能,都需要实现复杂的调用微信api逻辑,还有一些列更复杂的加解密验签接口可能需要接入,此外还要实现基本的登录态保持逻辑,工作量很大。
  • 当需要快速实现多个小程序进行试错的时候,大量重复的工作都可以通过一个完整的服务来优化。

综上,笔者就提出了一套方案。

方案描述

            sequenceDiagram
            participant u as 用户
participant mp as 小程序
participant mpapi as 小程序代理服务
participant api as 小程序后端服务
participant wx as 微信

u ->> mp: 用户使用小程序
mp ->> mpapi: 小程序请求代理服务
mpapi ->> wx: 小程序请求微信
wx ->> mpapi: 微信返回数据给代理服务
mpapi ->> api: 代理服务带着微信的数据请求后端服务
api ->> mp: 后端服务返回数据给小程序
mp ->> u: 小程序反馈给用户结果
          

如图所示,微信小程序在需要请求后端的时候,直接请求代理服务,由代理服务实现接入微信并请求后端的逻辑,最后把数据返回给用户。

代理服务在请求小程序后端服务的时候,将会携带从微信获取的数据,如:用户信息。

代理服务可以维护用户登录状态,并给用户创建统一的id进行管理。

实现

mpapi(Code on Github)使上述方案中代理服务的一个实现。

支持使用线上服务和私有化部署两种方式,参考使用文档