# 与业务系统对接
为了便于开发者将微管家与业务系统进行对接使用,开发者可通过如下方式集成:
- 当前仅支持将服务商业务模块与微管家模块部署在同一个服务内,在服务内进行调用和转发等行为从而实现将微管家与服务商业务系统进行对接。
开发者可通过如下功能进行集成:
- 微管家支持接收微信官方消息并转发至服务商业务系统;
- 微管家支持接收外部请求并路由至服务商业务系统;
- 微管家统一维护第三方token生命周期,支持与服务商业务系统对接
- 此外,开发者可从微管家数据库进行数据读取用以与业务系统对接。
如果使用该功能遇到任何问题可前往微信开放平台服务商专区进行反馈。
# 一、服务开发与部署
- 如何实现将服务商业务模块与微管家模块部署在同一个服务内?可参考下方操作步骤。
# 1.1、修改dockerfile
- 为了更好理解如何修改dockerfile实现将服务商业务模块与微管家模块部署在同一个服务内,开发者可参考官方demo进行学习。本文也是以该demo为原型进行说明。
1、找到服务商业务服务的dockerfile文件,下图是以官方demo"wxcloudrun-wxcomponent-flask“为例子:
2、在dockerfile文件添加如下信息,并且修改启动命令
FROM ccr.ccs.tencentyun.com/weixincloud/weixincloud_wxcomponent:latest as wxcomponent
COPY --from=wxcomponent /wxcloudrun-wxcomponent /wxcloudrun-wxcomponent
ENV GIN_MODE release
3、编写start.sh启动脚本
4、注意事项
- 业务服务不能监听80端口和8081端口(微管家已经监听了80端口,任选其他端口监听后填在代理配置中)
- 业务不能响应以下api(已被微管家占用)
/
/wxcallback/*
/wxcomponent/*
# 1.2、重新部署服务
服务商业务服务修改dockerfile后重新上传镜像,重新部署服务即可,可参考如下步骤完成。
1、从第三方平台登录微信云托管(当前仅支持从第三方平台跳转进入微信云托管,不可直接访问云托管首页进行登录)。具体路径为:第三方平台-详情-云服务-【前往微信云托管】,点击后即会带上登录态打开微信云托管首页
2、然后再进入云托管控制台即可
3、进入服务列表-进入服务详情-点击“发布”
4、【可选】在部署之前,检查一下服务设置里是否有如下4个配置(默认会有,如果没有则需手动配置后再部署,否则会部署失败)
5、选择压缩包的方式部署服务,此时即可将刚才重新打包的镜像上传即可。
6、等待一段时间,部署完成即可。
7、体验自定义业务
部署完成后即可访问使用。以官方demowxcloudrun-wxcomponent-flask:为例子,按照上面的开发指引完成部署后,可以前往proxy配置。
配置端口为8080后即可访问 https://xxxxxx.ap-shanghai.run.tcloudbase.com/count。
# 二、消息转发配置
业务服务开发并部署完成后,可在微管家进行消息转发的配置。
# 2.1、转发推送至授权事件URL的信息
- 服务商创建的第三方平台账号,可通过“授权事件配置”接收微信官方只推送给服务商的事件信息,部分例子如下:
2、授权变更通知
3、代注册小程序事件
- 当服务商业务系统需接收此类事件信息,可通过infoType进行区分,注意是严格区分大小写。
- 以授权成功通知为例子,infoType需填authorized,填Authorized也是不生效的。
- 完成配置后,开发者可进行连通性测试
- 当不需要再进行转发时,可以关闭转发器
# 2.2、转发推送至消息与事件URL的信息
- 服务商创建的第三方平台账号,可通过“消息与事件配置”接收微信官方推送给公众号或者小程序的事件或消息(服务商获得公众号或者小程序授权后可代接),部分例子如下:
1、名称审核结果事件
2、代码审核结果事件
4、公众号普通消息
- 当服务商业务系统需接收此类事件信息,可通过MsgType进行区分,注意是严格区分大小写。
- 如果MsgType是Even,则需要进一步填写Event名称,例如"weapp_audit_success"
# 三、代理外部请求
- 微管家支持proxy配置,proxy 开启后可将外部请求透传转发至内部业务服务,从而实现将微管家与其他业务系统对接。
# 四、数据对接
- 微管家的数据库结构如下,开发者可直接访问数据库进行数据读取。
# 五、Token统一管理
- 微管家的8081端口有token服务,只监听127.0.0.1,无需鉴权,使用http调用即可。开发者可通过如下方式获取“有效的token”,无须处理token过期事宜。
- 即,该接口获取到的token确保是有效不过期的。
- component_access_token 获取方式为:http://127.0.0.1:8081/inner/component-access-token
- authorizer_access_token 获取访问为:http://127.0.0.1:8081/inner/authorizer-access-token?appid=xxxx
注意事项:如果开发者自行开发其他服务也在刷新token,则有可能导致通过如上方式获取的component_access_token和authorizer_access_token不是最新的。