评论

腾讯微管家如何对接自己业务系统的一些参考

微管家前后端分离以及对接自己业务系统的一些参考

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

### 前端源码

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

[Github-wx-open-frontend](https://github.com/doodolabs/wx-open-frontend)

### 使用方法

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

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

### Nginx参考

```bash

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`

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

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


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

最后一次编辑于  03-21  
点赞 0
收藏
评论

1 个评论

登录 后发表内容