微信公众号开发

准备工程 pai-wechat

工程代码找一下zcy

流程图

微信配置

1、pai-wechat 中已经配置好了文件,在微信公众号上直接配置域名,失败会检测给出提示,成功则通过。

中台配置

1、配置第三方配置,填入唯一标识,选择微信公众号业务类型,设备类型选择网页,应用id填入微信公众号的appId
2、填入跳转地址 https://域名/wechat-api/wx/redirect/login ,域名填入正确的域名,wechat-api是业务的后端地址,使用正确的地址。

配置菜单

1、pai-wechat 可以通过 dev-swagger,初始化公众号的菜单
2、可以通过微信自定义菜单配置url,地址:https://dev.k8s.flyrise.cn/auth-api/third-party/login/page?platform=wxmp&redirectMethod=get&resultType=html&type=workbench&bizState= ,platform是中台的第三方标识

pai-wechat 配置

授权页面

最后微信会回调 /wx/redirect/greet/{appId}
判断是否绑定了中台账号,如果没绑定则调整绑定页面,否则跳转用户信息页面
目前支持通过手机号+验证码/账号名+密码的方式进行绑定账号
支持解除绑定公众号

  • 绑定页面

  • 用户信息

微信参数配置

微信配置现在版本放在了数据库中,支持多个微信公众号配置
由于没做前端页面,通过数据库做了保存数据,所以这里需要配置appId和sercet用来获取Access_token
token aes_key,用于与微信做通信使用的,例如关注、取消关注的推送消息,如果只做登录的情况下无需配置

微信模板配置

微信消息模版配置目前也是放在了数据库中
tmpl_bind_id 是微信的消息模版的id
tmpl_biz_key 是业务的唯一标识,用来发送模板消息

发送微信消息

发送消息可以在本地进行测试,只要appId 和secret 是正确的
如果使用的是测试的微信公众号,不能发送带有小程序的消息,因为公众号需要关联小程序后,小程序关联使用后才能用发送,不然会报错

  • 关联小程序

  • 发送代码

      @Resource
      private IWxMessageService messageService;
    
      @Test
      public void sendMessage() throws Exception {
      //构建Pai微信消息实体
      //userType 支持发送3种类型的账号,
      //PaiMsgUserEnum.WX-微信的openId,
      //PaiMsgUserEnum.USER-中台的userId,
      //PaiMsgUserEnum.STAFF-中台的staffId
      //bizTemplateId-模版表中的tmpl_biz_key
      //data是动态参数值
      PaiWxMpTemplateMessage msg1 = PaiWxMpTemplateMessage.builder()
                      .appId(appId)
                      .bizTemplateId(bizTemplateId)
                      .toUser(openId)
                      .userType(PaiMsgUserEnum.WX)
                      .data(mpTemplateDataList)
                      .build();
      //发送成功会返回一个19位的字符串
      String result = messageService.sendPaiWxMessage(msg1);
    }
文档更新时间: 2023-11-02 15:40   作者:戴均豪