微信服务商微管家本地化部署二

微信开放平台服务商微管家本地部署后自定义页面

重申下 wx-open 的意义:仅作为官方开源版本的一种本地化部署方案。三方平台开放的接口越来越多,每个用户用到的接口和使用场景也不太相同,推荐的二次开发方式『利用wx-open项目提供的 token 接入其他三方接口』。前端单独部署原理是用 NGINX 把自己业务系统 API 相关路由的转发到其他端口。

前端源码

如果想在一个系统中完成其他前端页面,可以下载下面这个版本

Github-wx-open-frontend

使用方法

config.tomlIS_APItrue,则 NGINX 配置需要调整成下面方式,此时前端项目发布不在需要重启 API 服务;如果为 false,则项目目录结构必须按照原来的结构(参考 wx-open 老版本),但 client/dist 目录可以替换成自己 build 后的文件。- 下载最新 wx-open-api.tar.gz API,修改 config.toml,新增 IS_API=true,否则会启动失败。

  • 如果自己重新发布前端项目,自己只build前端代码即可,无需重启接口服务(强烈建议前后端分开部署,要么每次修改代码都得重启wx-open

Nginx参考

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

server {
    listen 443 ssl;
    server_name wx-open.com;
    root /www/wx-open/dist;
    ssl_certificate /ssl/xxx_bundle.crt;
    ssl_certificate_key /ssl/xxx.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    access_log /var/log/nginx/wx-open.access.log;
    error_log /var/log/nginx/wx-open.error.log;
    client_max_body_size 200m;
    location ~ ^/(wxcomponent|wxcallback)/ {
        proxy_set_header  Host $host;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-Proto https; #
        proxy_set_header  X-Forwarded-For $remote_addr;
        proxy_set_header  X-Forwarded-Host $remote_addr;
        proxy_pass http://xxx.xxx.xx.xx:8666;
    }
}

二次开发思路

  • 首先要把上面的 Go的Api(后面统称wx-open)部署好,主要是让微信平台 callback,稳定提供最新的小程序token。比如配置的域名是 wx-open.com

  • 本地用自己常用的开发语言(随便python/node/go/php/java) 起一个web服务(假设端口 8668),在 nginx 配置匹配到 wx-open.com/api/python 这个uri开头的服务都代理到 8668

  • 方案一 想用一套前端代码把所有三方平台的接口都接了

    • 上面前端代码下载。fork 后,自己本地开发即可

    • 前端在本地用 npm run dev 就可以调试了

    • 连老接口用 wx-open.com

    • 连自己新开发的接口用 wx-open.com/api/python/xxxx

  • 方案二 不想维护官方的前端代码,自己其他的业务逻辑都写到别的前端项目。

    • 新起一个前端项目,其他开发思路同方案一。优点:新项目可以随便用VueReact以及其他UI组件库

TODO::有问题留言,尽量把问题描述清楚,如果问题解决了也可以把解决方案留言,方便其他小伙伴排查问题,相关文档后续补充

doodo
Built with Hugo
主题 StackJimmy 设计
本站总访问量  |  本站访客数