微信服务号发送消息-java

一,说明

服务号和公众号站在用户角度讲都是公众号,但是我们微信后台有区分,公众号发消息有条数限制,而服务号发送客服消息没有条数限制,所以这里我们选取服务号发送消息。以下做的是需要用户网页授权且关注服务号(用户角度是公众号)后续才能向用户发送消息。

下面我们在调用微信接口使用的是第三方的sdk调用,也可以自己选择http直接调用

注意:如果你的系统中之前是通过http方式请求获取微信token的,就建议还是用原来的方式调用微信开放平台接口,就不建议再去集成sdk的方式去调用微信开放平台的接口,不然可能会产生token污染的问题,如果你确保不会产生token污染,那么也可以选择使用sdk方式,毕竟方便。 

二,发送消息业务流程图

        下图分为四部分,前端:H5 。后端:crm服务,微信service(自定义的中台服务)。微信(微信服务商)。其中我们为了后期融合多个项目用到微信服务号发送消息功能,自己定义了微信service中台服务,你们可以不用建中台服务,将微信servicecrm服务看成一个服务就行了。

 三,代码核心流程图

其中右边钝角矩形方框内写的都是sdk调用微信开放平台接口的工具类,上半部分是针对微信service写的代码流程,微信service最后会返回redis中的用户信息的key给H5,crm服务需要根据H5传过来的key去微信service查询用户信息即可,用户信息包含openid,后面就可以拿着这个openid去向用户发送消息了。

3.1,调用微信开放平台接口的核心工具类:

pom依赖:

 <!--微信公众平台开发工具包-->
        <dependency>
            <groupId>com.github.binarywang</groupId>
            <artifactId>wx-java-mp-spring-boot-starter</artifactId>
            <version>4.6.0</version>
        </dependency>

yml文件配置:

yml文件配置

wx:
  mp:
    app-id: 132465789   #你自己服务号的appid
    secret: 132465789   #你自己服务号的secret
    token: 123
    aes-key: 123
    config-storage:
      type: redistemplate  # 配置为 redistemplate 后默认会使用spring的redis配置
      key-prefix: wx
    business-auth-callback-url-for-wechat: https://sdfsdffsgh/authCallback?redirectUrl=%s

调用微信开放平台接口sdk工具类(核心代码):

//用户网页授权获取code,跳转302重定向接口
return wxMpService.getOAuth2Service().buildAuthorizationUrl(businessRedirectUri, "snsapi_userinfo", IdUtil.fastSimpleUUID());

//根据code获取用户AccessToken
WxOAuth2AccessToken wxOAuth2AccessToken = wxMpService.getOAuth2Service().getAccessToken(code);


//根据accessToken获取用户信息
WxOAuth2UserInfo userInfo = wxMpService.getOAuth2Service().getUserInfo(wxOAuth2AccessToken, null)

//调用微信发送服务号消息接口
String msgId = wxMpService.getTemplateMsgService().sendTemplateMsg(templateMsg);

其中消息体格式需要结合微信官方文档查看发送:开放接口 | 微信开放文档

四,总结

        核心代码已贴出,其中的判断是否请求成功,及异常捕获处理,及其他的业务需根据自己的需求添加。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值