您的位置:首页 > 移动开发 > 微信开发

微信小程序模板消息推送实现(java后台)

2019-02-26 15:41 876 查看

#(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<String, TemplateData> 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使用。但是对于
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: