微信小程序模板消息推送实现(java后台)(微信平台已下架该接口)

#(Notice:以下所有经验也是我根据网上的经验整理的,如有侵权可以联系我删除,Wx:IT_Ezra,QQ 654303408。 有问题讨论也可联系我,QQ同上。)
#(Tips:我是第一次开发,一个刚毕业的java工程师,我觉得我并非天赋异禀,我能学会,相信聪敏的你,一定可以)

(PS:首先,当我们需要使用模板消息的时候,肯定是基于一定的需求,可能是小程序,可能是公众号推广,所以也一定会涉及到微信的后台,当然该功能的实现并不需要和支付一样去深度了解开发文档,其实过程很十分简单。基础扎实即可)

#准备工作

  • 首先先上官方文档

https://developers.weixin.qq.com/miniprogram/dev/api/open-api/template-message/sendTemplateMessage.html

  • 有些事情是需要前端做的,去申请formId,去申请teamplateId,去拿微信的基础信息,比如appid,appsecret,appkey。反正官方需要的东西,要先准备好。然后开始写接口。
  • 创建推送消息类(实体)。这个实体很重要,要用restTemplate来进行http请求。不知道为什么,我重命名到一个自己的名字,没用,可能是我有些细节没注意。反正就先用这个了。
public class weiXinTeamplateMsg{
    private String touser;//用户openid
    private String template_id;//模版id
    private String page = "index";//默认跳到小程序首页
    private String form_id;//收集到的用户formid
    private String emphasis_keyword = "keyword1.DATA";//放大那个推送字段
    private Map data;//推送文字
}
  • 这个类就是自己所需要的内容的一个实体,相当于一个extend类,color已经被弃置,只有value。
public class TemplateData {
    //keyword1:订单类型,keyword2:下单金额,keyword3:配送地址,keyword4:取件地址,keyword5备注
    private String value;//,,依次排下去
//    private String color;//字段颜色(微信官方已废弃,设置没有效果)
}
  • #####到这里请求推送的数据就组装好了,接下来,一个很重要的过程,获取一个重要的字段需要获取到:access_token。首先给出access_token的entity。
/**
 * @ author ezra
 * @ date 2019/1/28 9:48
 */
public class AccessToken {
	// 获取到的凭证
	private String access_token;
	// 凭证有效时间,单位:秒
	private int expiresIn;

	public String getAccess_token() {
		return access_token;
	}

	public void setAccess_token(String access_token) {
		this.access_token = access_token;
	}

	public int getExpiresIn() {
		return expiresIn;
	}
	public void setExpiresIn(int expiresIn) {
		this.expiresIn = expiresIn;
	}
}
  • 然后去可以通过以下方法获取access_token。
/*
    * 获取access_token
    * appid和appsecret到小程序后台获取,当然也可以让小程序开发人员给你传过来
    * */
    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 = restTemplate.getForObject(url, String.class);
        AccessToken accessToken = new Gson().fromJson(json, AccessToken.class);
        return accessToken.getAccess_token();
    }
  • 在这个过程中,会遇到一些坑等待着大家。首先,可以看到一个restTemplate对象,这个对象是需要在spring里面配置的,然后自动注入。只能在web层使用,也就是controller使用。但是对于

你可能感兴趣的:(微信小程序模板消息推送实现(java后台)(微信平台已下架该接口))