微信公众平台——模板消息接口

来源:互联网 发布:java 矩阵乘法 编辑:程序博客网 时间:2024/05/16 15:57

关于接口文档,请注意:

1、模板消息调用时主要需要模板ID和模板中各参数的赋值内容;2、模板中参数内容必须以".DATA"结尾,否则视为保留字;3、模板保留符号"{{ }}"。

1.service

/** * 微信自动消息推送 * @author Administrator * */@Servicepublic class AutomaticMessagePushServiceImpl implements AutomaticMessageServicePush {@Autowiredprivate MyCache cache;@Overridepublic String AutomaticMessagePush(JSONObject JsonCustom,String first,String remark,String openId,String templateId,String customUrl,Integer identification) {JSONObject Json = new JSONObject();JSONObject Jsonfirst = new JSONObject();JSONObject Jsonremark = new JSONObject();//头部Jsonfirst.put("value", first);Jsonfirst.put("color", "#000000");//尾部Jsonremark.put("value", remark);Jsonremark.put("color", "#000000");//自定义内容增加头和尾JsonCustom.put("first", Jsonfirst);JsonCustom.put("remark", Jsonremark);//微信openIdJson.put("touser", openId);//模板idJson.put("template_id", templateId);//详情跳转地址Json.put("url", customUrl);//json数据Json.put("data", JsonCustom);//根据标识发送对应公众号String appid;String appSecret;String keyName ="";if(identification==Constants.TALENT_IDENTIFICATION){keyName = "wechatAccessToken";appid = ConfigHelper.getInstance("config").getValue("DaRenAppID");appSecret = ConfigHelper.getInstance("config").getValue("DaRenAppSecret");}else{keyName = "wechat_AccessToken";appid = ConfigHelper.getInstance("config").getValue("WalletAppID");appSecret = ConfigHelper.getInstance("config").getValue("WalletAppSecret");}String url_Template_GetAccessToken ="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s";String url_Template_GetAccessTicket = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=%s&type=jsapi";String accessToken = cache.getString(keyName);if(accessToken == null){//获取tokenString url_GetAccessToken = String.format(url_Template_GetAccessToken, appid,appSecret);JSONObject accessTokenMap = sendGetRequest(url_GetAccessToken);accessToken = accessTokenMap.getString("access_token");cache.setString(keyName, 6000, accessToken);}String url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+accessToken;String result = HttpRequestSimple.getInstance().postSendHttp(url, Json.toString());return result;}public static JSONObject sendGetRequest(String url){HttpClient httpClient = CustomHttpClient.GetHttpClient();HttpGet get = new HttpGet(url);get.setHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8");BufferedReader br = null;try {// 发送请求,接收响应HttpResponse resp = httpClient.execute(get);int ret = resp.getStatusLine().getStatusCode();if(ret == HttpStatus.SC_OK){// 响应分析HttpEntity entity = resp.getEntity();br = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"));StringBuffer responseString = new StringBuffer();String str = br.readLine();while (str != null) {responseString.append(str);str = br.readLine();}return JSON.parseObject(responseString.toString());}}catch(Exception e){e.printStackTrace();}finally {if (br != null) {try {br.close();} catch (IOException e) {// do nothing}}}return new JSONObject();}}

2.controller调用

/** * 绑定消息推送公共方法 * @param openId */private void bindingPush(String openId) {//发送自动消息推送com.alibaba.fastjson.JSONObject Json = new com.alibaba.fastjson.JSONObject();com.alibaba.fastjson.JSONObject name1 = new com.alibaba.fastjson.JSONObject();com.alibaba.fastjson.JSONObject name2 = new com.alibaba.fastjson.JSONObject();com.alibaba.fastjson.JSONObject time = new com.alibaba.fastjson.JSONObject();name1.put("value", "通金达人");name1.put("color", "#000000");name2.put("value", "微信");name2.put("color", "#000000");//绑定时间time.put("value", DateUtil.dateToString1(new Date()));time.put("color", "#000000");Json.put("name1", name1);Json.put("name2", name2);Json.put("time", time);//消息头部String first = "用户您好,恭喜您账户绑定成功!";//消息尾部String remark = "您可以使用下方微信菜单进行更多功能体验,如需解除绑定请回复'qxbd'";//详情跳转页面String customUrl = ConfigHelper.getInstance("config").getValue("DaRenPushUrl");//根据json内容微信自动消息推送servicePush.AutomaticMessagePush(Json,first,remark,openId,Constants.TALENT_BINDING_SUCCESS,customUrl,Constants.TALENT_IDENTIFICATION);}



0 0
原创粉丝点击