# 微管家使用和问题解答

「服务商微管家」是部署于「微信云托管」的一个开源项目,提供第三方平台的后端服务以及第三方平台管理工具,降低了微信开发者接入开放平台服务商的门槛。

注意:「服务商微管家」不是强制使用的,开发者可以自行构建平台接入「微信第三方平台」。

如果你的第三方平台安装有「服务商微管家」,但因为各种原因导致云托管环境销毁,安装被卸载,请阅读此文档「六、常见问题」解决。

# 一、功能介绍

微信官方为帮助开发者更加聚焦业务开发,减少在环境搭建、管理工具建设等方面的成本投入,推出「一键搭建第三方平台后端服务、一键获得第三方平台管理工具」功能,助力开发者更高效地基于第三方平台开展业务。

该服务以镜像和源码的方式开放。开发者一键部署即可获得开箱即用的后端服务与服务商 SaaS 应用(服务商管家),也可以进行与服务商业务的开发对接。

该服务一键部署于微信云托管,源码存放地址为 wxcloudrun-wxcomponent,开发者可下载源码进行二次开发。

如果使用该功能遇到任何问题,可前往微信开放平台服务商专区进行反馈。

# 1、功能列表

该工具当前最新版本为 v2.1.0,功能如下,后续暂无更新计划,开发者可根据源码自行升级改造:

  • 授权账号管理:批量对授权给第三方平台的公众号/小程序账号进行可视化管理。
  • 代开发小程序管理:进行提交代码、提交审核、提交发布等操作。
  • 第三方 Token 获取:一键获取 component_verify_ticketcomponent_access_tokenauthorizer_access_token 以及微信令牌,便于开发者进行调试。
  • 第三方消息查看:一键获取推送至授权事件 URL 和消息与事件 URL 的消息,便于开发者进行调试。
  • 第三方授权页面生成:一键生成 PC 版和 H5 版的授权页面,商家可扫码或者直接访问授权页面完成授权。
  • 消息转发器:将接收来自微信官方推送的消息转发给服务商业务服务,实现与业务系统的集成。
  • proxy 配置器:将外部请求透传转发至服务商业务服务,从而实现将微管家与其他业务系统对接。

# 2、使用条件

# 2.1 获取 Ticket 与 Token

该模块提供一键获取 component_verify_ticketcomponent_access_tokenauthorizer_access_token 以及微信令牌的功能,便于开发者进行调试。但如果第三方平台未使用部署云服务后生成的默认配置,则会影响相关功能使用。具体如下:

  • 如果「授权事件配置」没有使用系统生成的环境 ID、服务名称和消息路径,则无法在第三方平台管理工具一键获取 component_verify_ticket
  • 如果「授权事件配置」没有使用系统生成的环境 ID、服务名称和消息路径,则无法在第三方平台管理工具一键获取 component_access_token

# 2.2 查看消息与事件

该模块提供一键获取推送至授权事件 URL 和消息与事件 URL 的消息功能,便于开发者进行调试。但如果第三方平台未使用部署云服务后生成的默认配置,则会影响相关功能使用。具体如下:

  • 如果「授权事件配置」没有使用系统生成的环境 ID、服务名称和消息路径,则无法在第三方平台管理工具查看微信平台推送至原「授权事件 URL」的消息。
  • 如果「消息与事件配置」没有使用系统生成的环境 ID、服务名称和消息路径,则无法在第三方平台管理工具查看微信平台推送至原「消息与事件 URL」的消息。

# 2.3 授权账号管理

该模块提供查看授权账号基本信息、查看授权权限集列表、获取 refresh_token 以及 authorizer_access_token 的功能。如果第三方平台未使用部署云服务后生成的默认配置,不会影响相关功能使用。

# 2.4 授权页面生成

该模块提供一键生成 PC 版和 H5 版授权页面的功能,服务商可将页面的链接发送给商家,商家可扫码或者直接访问授权页面完成授权。但如果第三方平台「授权登录域名」未使用部署云服务后生成的默认配置,则会影响该功能使用。

# 二、操作指南

# 1、访问方式说明

若将镜像部署在微信云托管,则可从第三方平台直接一键前往第三方平台管理工具,具体入口如下:

也可以前往「微信云托管 - 服务列表」中获取服务的访问地址,然后再点击访问。

# 2、获取登录账号与密码

云服务部署时,系统会分配随机的账号密码,通过站内信发送。

使用系统分配的账号密码登录第三方平台管理工具后,可重置密码,以保障系统的安全性。

# 3、快速体验核心功能

进入首页后,可按照指引快速体验完成第三方授权全过程。

# 3.1 体验扫码授权

  • 确保旗下有作为管理员的公众号或者小程序,并且把该公众号或者小程序加入第三方平台「授权测试公众号/小程序列表」。
  • 然后,复制 PC 授权链接到浏览器并打开,则看到授权码,使用微信扫码即可完成授权。

说明:复制出来的授权链接,开发者可以将此链接对接到实际业务中,无需重复开发。

# 3.2 授权账号管理

扫码完成授权之后,已经授权的账号自动出现在授权账号管理模块中,可在此进行查看和管理。

# 3.3 代开发小程序管理

# 4、开发调试

完成了核心功能体验后,接下来可进行消息推送以及接口调试。

# 4.1 消息查看

为了方便开发者测试是否接收到平台推送的消息以及查看消息体内容,可在管理工具中快速查看消息。

# 4.2 Token 生成

需在系统管理中配置第三方平台 Secret,方可获取 component_access_token

说明:该管理工具是私有化部署到开发者的云托管环境中,官方无法获取 Secret 并存储。但 Secret 为敏感信息,开发者需正确保存好。

获取第三方平台的 Secret 的方式如下:

配置完成后即可一键获取 Token,后续会提供在线调试工具。

# 5、消息转发器

业务服务开发并部署完成后,可在微管家进行消息转发的配置。

# 5.1 转发推送至授权事件 URL 的信息

服务商创建的第三方平台账号,可通过「授权事件配置」接收微信官方只推送给服务商的事件信息,部分例子如下:

1、component_verify_ticket

2、授权变更通知

3、代注册小程序事件

当服务商业务系统需接收此类事件信息,可通过 infoType 进行区分,注意严格区分大小写。以授权成功通知为例,infoType 需填 authorized,填 Authorized 也是不生效的。

完成配置后,开发者可进行连通性测试:

当不需要再进行转发时,可以关闭转发器:

# 5.2 转发推送至消息与事件 URL 的信息

服务商创建的第三方平台账号,可通过「消息与事件配置」接收微信官方推送给公众号或者小程序的事件或消息,部分例子如下:

1、名称审核结果事件

2、代码审核结果事件

3、配送单配送状态更新通知事件

4、公众号普通消息

当服务商业务系统需接收此类事件信息,可通过 MsgType 进行区分,注意严格区分大小写。如果 MsgTypeEvent,则需要进一步填写 Event 名称,例如 weapp_audit_success

# 6、proxy 配置器

微管家支持 proxy 配置,proxy 开启后可将外部请求透传转发至内部业务服务,从而实现将微管家与其他业务系统对接。

# 三、与业务系统对接

不修改官方服务的代码,与服务商业务系统进行集成,详细的开发对接指南可查看微管家与业务系统对接

# 四、二次开发

若官方服务的功能无法满足服务商个性化需求,开发者可参考官方服务二次开发指南

前往项目代码,其目录结构如下:

# 五、更新版本

# 5.1 下载 zip 包

前往项目地址,下载 zip 压缩包;或者执行 git clone git@github.com:WeixinCloud/wxcloudrun-wxcomponent.git

# 5.2 上传 zip 包

登录微信云托管新建发布,选择「手动上传代码包」。当前仅支持从「第三方平台 - 详情 - 云服务 - 前往微信云托管」的方式登录进入微信云托管。

# 5.3 发布

发布前可检查一下服务配置里是否正确配置了环境变量。配置环境变量为 MYSQL_ADDRESSMYSQL_PASSWORDMYSQL_USERNAMEWX_APPID

确认无误后,点击「发布」,等待几分钟,部署完成后重新进入管理工具即可看到新版本的内容。

# 六、常见问题

使用该工具,产生的费用如何计算?

该管理工具部署在微信云托管时产生了服务和数据库,相关的计费策略可查看微信云托管产品计费说明

如何停止使用该工具不会再产生费用?

如不想再使用该工具,可登录微信云托管将环境删除即可,删除后则不再产生费用。

配置 Secret 后,出现 Ticket 为空以及微信令牌为空的情况,怎么办?

这种情况是因为新账号需要等待 10 分钟,平台才开始推送 Ticket 以及微信令牌。

官方镜像版本有更新后,如何更新服务?

前往微信云托管重新新建版本并部署服务,操作详情查看第五条。

服务删除后,如何可以重新部署使用?

前往微信云托管重新新建版本并部署服务,操作详情查看第五条,另外还需要注意以下几点:

  • 云托管环境被删除,需要在「第三方平台 - 云服务」,前往云托管,重新操作开通环境。
  • 按照开源代码仓库的指引或者下文第六条,新建一个服务部署代码。
  • 手动新建一个服务并部署,需要在「服务设置」中补全以下环境变量,才可正常使用,否则会引发无法连接数据库,进而导致部署失败。
    • MYSQL_ADDRESS:数据库的内网地址
    • MYSQL_PASSWORD:数据库的密码
    • MYSQL_USERNAME:数据库的用户名
    • WX_APPID:第三方平台的 AppID
  • 部署时安装有问题,则先关闭「云调用 - 开放接口服务」,等部署后,再重新打开并触发一次部署。开放接口服务配置接口填如下:
/cgi-bin/component/api_get_authorizer_list
/cgi-bin/component/api_get_authorizer_info
/cgi-bin/component/api_create_preauthcode
/cgi-bin/component/api_authorizer_token
/cgi-bin/component/api_component_token
/cgi-bin/component/api_query_auth
/cgi-bin/media/upload
/cgi-bin/componentloginpage
/wxa/submit_audit
/wxa/get_latest_auditstatus
/wxa/getvisitstatus
/wxa/getversioninfo
/wxa/getwxacodeunlimit
/wxa/get_qrcode
/wxa/gettemplatelist
/wxa/undocodeaudit
/wxa/speedupaudit
/wxa/commit
/wxa/release
/wxa/change_visitstatus
/wxa/revertcoderelease
/wxa/get_page
/wxa/get_category
  • 运行成功后,需在「系统管理 - Secret 与密码管理」中配置第三方平台的 Secret 信息,部署后需要在第三方平台中配置相应推送授权路径(如果不可以更改,前往「开发模式」中切换为传统模式,再返回「开发资料」修改)。

登录授权的发起页域名:直接配置服务商微管家的运行域名,推送路径按照图中配置,云托管环境和服务名称写自己的。

# 七、更新日志

# v2.1.0

发布时间:2022-04-14

  • 代开发小程序管理:进行提交代码、提交审核、提交发布等操作。

# v2.0.0

发布时间:2022-03-09

  • 新增消息转发器功能:支持接收来自微信官方推送的消息转发给内部业务服务,通过添加转发规则可将不同场景的消息转发至后端服务,便于与业务进行更好的集成。
  • 新增 proxy 配置功能:proxy 开启后可将外部请求透传转发至内部业务服务,从而实现将微管家与其他业务系统对接。

# v1.1.1

发布时间:2022-01-18

  • 新增首页产品体验指引。
  • 优化授权链接生成方式。
  • H5 授权链接 bugfix。

# v1.0

发布时间:2021-12-31

  • 第一版功能上线。