栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java 微信小程序订阅推送消息

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java 微信小程序订阅推送消息

package com.juju.common.utils;

import com.google.gson.Gson;
import lombok.Data;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.web.client.RestTemplate;

import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.util.*;


public class WxSendTemplate {

    private static final Logger log = LoggerFactory.getLogger(WxSendTemplate.class);


    
    public String pushOneUser(String openid, String formid) {

        //获取access_token
        String access_token = getAccess_token("appid", "appserct");
        String url ="https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+ access_token;
        //拼接推送的模版
        WxMssVo wxMssVo = new WxMssVo();
        wxMssVo.setTouser(openid);//用户openid
        wxMssVo.setTemplate_id(formid);//模版id

        List paras=new ArrayList();
        Map map=new HashMap();
        map.put("thing1",new TemplateParam("000001"));//对应图片上面参数
        map.put("time2",new TemplateParam("15:01"));
        map.put("thing3",new TemplateParam("888.88"));
        map.put("thing4",new TemplateParam(decode("请进入小程序查1看A")));

        wxMssVo.setData(map);
        String json=com.alibaba.fastjson.JSON.toJSONString(wxMssVo);//关键
        System.out.println(json);
        RestTemplate restTemplate=new RestTemplate();
        restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
        ResponseEntity responseEntity =
                restTemplate.postForEntity(url, json, String.class);
        log.error("小程序推送结果={}", responseEntity.getBody());
        return responseEntity.getBody();
    }

    public static String decode(String param){
        String result= null;
        try {
            result = new String(param.getBytes("utf-8"), "utf-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return result;
    }
    
    public String getAccess_token(String appid, String appsecret) {
        //获取access_token
        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential" +
                "&appid=" + appid + "&secret=" + appsecret;
        String json = new RestTemplate().getForObject(url, String.class);
        AccessToken accessToken = new Gson().fromJson(json, AccessToken.class);
        System.out.println(accessToken.getAccess_token());
        return accessToken.getAccess_token();
    }

    public static void main(String[] args) {
        WxSendTemplate wx =new WxSendTemplate();
        wx.pushOneUser("openid","模板id");
    }

}


@Data
class WxMssVo {
    private String touser;//用户openid
    private String template_id;//模版id
    private String page = "index";//默认跳到小程序首页
    private String miniprogram_state = "trial";//默认跳到小程序首页
    private String lang = "zh_CN";//进入小程序查看”的语言类型
    private Object data;//推送文字
}


@Data
class AccessToken {
    private String access_token;
    private String expires_in;
}

@Data
class TemplateParam {

    private String value;

    public TemplateParam(String value){
        this.value=value;
    }
}

官方地址

https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/305638.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号