Java 微信公众号消息推送(从零开始)

1.前期准备

2. 设置域名以及ip白名单

设置域名主要做回调地址使用,例如:pay.company.cn,需要根据官方指引,将对应的txt文件放到web服务器的根目录下即可

3. 选择合适的消息模板,记住其模板id和点击详情后的内容格式,因为发送模板消息,需要模板id以及内容格式

2.用户微信授权,获取其openId(重要)

这里将会指引你如何将用户进行网页授权也是就

1. 引导用户进入授权页面同意授权,获取code

2. 通过 code 换取网页授权access_token

3. 根据通过网页授权access_token和 openid 获取用户基本信息

代码如下;(敏感的appid和密码以及域名地址需要自己替换)

然后系统会打印出跳转地址和openId ,该工具会自动跳转/getCode返回的Url并且回调我们的方法 /wxpay/weixinoauth 进行获取用户code,再构建授权url地址j获取openId

打印情况如下(敏感信息已打码):

如果正常到了这里,则说明成功了一半了。

3.获取微信基础accessToken

若出现了无效的ip地址错误,则确认ip白名单是否设置再去

4. 调用微信模板方法发送消息

这一步很简单,通过以上获取的 openId, accessToken 和 前期准备的模板id即可,我们只需要封装模板内容,再调用官方url即可

自定义DTO

@Data
@ToString
public class WeChatTemplateMsg {
    /**
     * 消息
     */
    private String value;
    /**
     * 消息颜色
     */
    private String color;


    public WeChatTemplateMsg(String value) {
        this.value = value;
        this.color = "#173177";
    }

    public WeChatTemplateMsg(String value, String color) {
        this.value = value;
        this.color = color;
    }
}

结果是:

可能需要的依赖:

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.4.0</version>
</dependency>
经验分享 程序员 微信小程序 职场和发展