Skip to content

第三方平台对接

TIP

在系统中分别对应的是common-starter-dingtalk(钉钉对接)、common-starter-wechat(微信公众平台和开放平台)和common-starter-wecom(企业微信)三个模块

微信(公众平台)

使用WxJava工具包进行开发,WxJava项目地址:GITHUBGITEE

消息模板

同步微信公众平台对应的模板消息模板,进行查看和管理,见WeChatTemplateController

自定义菜单

管理微信的自定义菜单,可以导入微信平台现有菜单到系统中进行配置,也可以在系统中创建菜单模板,支持配置菜单的各项属性后保存为草稿或发布。见WeChatMenuService

素材管理

管理语音视频图片三类资源,见WeChatMediaService

后台接入

通过在微信公众平台管理系统中,将用户消息设置为发送到我们指定的服务器上,项目中接收微信消息的接口地址是:项目ip:端口/wechat/portal。可以查看系统中对应的下列类:

WeChatPortalService 微信门户处理 WeChatMessageRouterConfiguration 微信信息路由配置,对不同的消息类型进行了绑定处理服务 WxMpMessageHandler的一众实现类 如WeChatMsgHandler文本消息处理、WeChatQrScanHandler微信扫码事件处理等 WeChatMpMessageHandler WxMpMessageHandler的子接口,用来支持自动关联不同的消息类型处理

微信扫码登录

需要微信公众平台设置为将用户消息设置为发送到我们指定的服务器上。详细使用见认证鉴权登录认证模块

支持微信扫码进行登录,通过WeChatQrLoginController进行接收,结合WeChatQrScanHandler扫码事件处理器,来实现系统的登录,整体的工作流程如下:

  1. 前端通过/token/wechat/qr/applyQrCode接口来获取用于登录用QR码,在页面上进行展示供用户进行扫码
  2. 同时开启轮训任务,通过QR码的Key值,来判断是否扫码成功,也可以建立一个Websocket连接,通过服务端主动推送扫码事件的状态
  3. 用户扫码后,微信公共平台会推送给后台服务端一条消息,系统通过WeChatQrScanHandler处理器接收后,会将要进行登录用户OpenId写入到缓存中
  4. 前端获取到登陆成功的状态后,将QR码作为authCode参数并调用登录接口进行登录
  5. 系统会分配到WeChatLoginHandler微信登录处理器进行处理,通过接收到的QR码,从缓存中获取关联的微信OpenId,然后通过OpenId获取关联用户生成Token返回给前端,登录完成

消息事件处理

需要微信公众平台设置为将用户消息设置为发送到我们指定的服务器上。

在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发者可以获取到该信息并进进行处理。 通过实现WeChatMpMessageHandler接口并注入到Bean容器中,系统会自动跟相关类型的消息进行绑定,相关的类见上方后台接入

企业微信

TIP

主要是使用WxJava工具包对接企业微信的消息发送能力,分为机器人通知和工作通知,见企业微信通知

钉钉

TIP

主要是对钉钉访问凭证和消息发送能力进行了对接,对接方式为直接调用钉钉开放平台官方的Rest接口,钉钉开放平台:文档地址, 具体使用说明见钉钉通知模块

DingAccessService

钉钉访问凭证服务,用来获取企业内部应用的access_token,调用钉钉各种能力之前,都需要先获取到access_token

DingMediaService

钉钉媒体文件管理,主要用来发送带有媒体或文件的消息时,上传对应的文件获取它的媒体ID(发送媒体消息参数需要传媒体ID),注意:发现钉钉媒体id只能使用一次, 和文档描述不一致,不确定现在有没有修复。

消息通知

分为机器人通知和工作通知,见通知服务

配置方式

TIP

主要分为两种配置方式,分别是配置文件配置和管理后台进行配置,通过配置文件配置的,通常在系统中都基于这份配置进行操作,例如微信、钉钉、小程序等。 界面配置的通常为企微、钉钉机器人一类的,可以有多个。

配置文件方式

yaml
bootx:   
  starter:
    # 三方平台
    third:
      # 钉钉
      ding-talk:
        # AppKey
        app-key: ??
        # AppSecret
        app-secret: ??
        # 应用id
        agent-id: 1001
      #微信(公众平台)
      wechat:
        # AppKey
        app-id: ??
        # AppSecret
        app-secret: ??
        # token
        token: ??
        # 消息加解密密钥
        encoding-aes-key: ??
      # 企业微信
      wecom:
        # 应用id
        agent-id: 1000003
        # 企业id
        corp-id: ??
        # 企业Secret
        corp-secret: ??
        # token
        token: ??
        # 消息加解密密钥
        encoding-aes-key: ??
      # 微信小程序
      wechat-applet:
        # AppKey
        app-id: ??
        # AppSecret
        app-secret: ??

管理端配置方式

其他关联功能链接

本文档内容版权属于济南易杯光年软件技术有限公司,保留所有权利