微信公众号开发
准备工程 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); }