公众号如何向用户发送重要的服务通知?

模板消息

微信开发文档地址

工具类:

package com.XXXXX.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;

import java.io.IOException;

/**
 * 
 * @Date: 2021/12/17 0017 13:38
 */
@Slf4j
public class WxUtils {
    //APP ID 公众号
    private static final String APP_ID="XXXXXXX";
    //APP 密钥 公众号
    private static final String APP_SECRET="XXXXXXX";

    //根据code获取token和openid 请求地址 
    private static final String WX_GET_TOKEN_GZH_URL="https://api.weixin.qq.com/sns/oauth2/access_token?appid="+APP_ID+"&secret="+APP_SECRET+"&grant_type=authorization_code&code=";

    //获取access_token
    private static final String WX_GET_ACCESS_TOKEN_URL="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+APP_ID+"&secret="+APP_SECRET;

    //微信公众号发送模板消息
    private static final String WX_POST_SEND_TEMPLATE_URL="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=";

    /**
     * 获取access_token,公众号的全局唯一接口调用凭据
     * @return
     */
    public static String getAccessToken(){
        String result=HttpClientUtil.doGet(WX_GET_ACCESS_TOKEN_URL);
        JSONObject wxObject=JSON.parseObject(result);
        return String.valueOf(wxObject.get("access_token"));
    }


    /**
     *          微信公众号发送模板消息
     * @param touser  接收者id
     * @param template_id  模板id
     * @param url    回调地址
     * @param topcolor  字体样式
     * @param data   发送的内容JSON
     * @return
     */
    public static String wxSendMsg(String touser, String template_id, String url, String topcolor, JSON data) throws IOException {
        net.sf.json.JSONObject json = new net.sf.json.JSONObject();
        json.accumulate("touser",touser);
        json.accumulate("template_id",template_id);
        json.accumulate("url",url);
        json.accumulate("topcolor",topcolor);
        json.accumulate("data",data);
        String msg = json.toString();
        String result = HttpClientUtil.sendPost(WX_POST_SEND_TEMPLATE_URL+getAccessToken(), msg);
        System.out.println(result);
        return result;
    }


    /**
     * 根据code拿取openid
     * @param code
     * @return
     */
    public static String getOpenId(String code){
        String result=HttpClientUtil.doGet(WX_GET_TOKEN_GZH_URL+code);
        JSONObject wxObject=JSON.parseObject(result);
        return String.valueOf(wxObject.get("openid"));
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值