微信公众号发送模板消息 Java实现。

jopen 9年前

本博文是测试公众号调用模板接口测试。

第一步:创建模板信息

第二步:准备模板代码实体类用到的属性自行加入就行

public class TemplateData {      private String value;       private String color;      public String getValue() {          return value;      }      public void setValue(String value) {          this.value = value;      }      public String getColor() {          return color;      }      public void setColor(String color) {          this.color = color;      }  }

public class WxTemplate {        /**       * 模板消息id       */      private String template_id;      /**       * 用户openId       */      private String touser;      /**       * URL置空,则在发送后,点击模板消息会进入一个空白页面(ios),或无法点击(android)       */      private String url;      /**       * 标题颜色       */      private String topcolor;      /**       * 详细内容       */      private Map<String,TemplateData> data;            public String getTemplate_id() {          return template_id;      }      public void setTemplate_id(String template_id) {          this.template_id = template_id;      }      public String getTouser() {          return touser;      }      public void setTouser(String touser) {          this.touser = touser;      }      public String getUrl() {          return url;      }      public void setUrl(String url) {          this.url = url;      }      public String getTopcolor() {          return topcolor;      }      public void setTopcolor(String topcolor) {          this.topcolor = topcolor;      }      public Map<String, TemplateData> getData() {          return data;      }      public void setData(Map<String, TemplateData> data) {          this.data = data;      }                    }

第三步:具体方式实现本博文只是测试公众号测试模板接口调用

public class SendOrderPaySuccessMsg {            Logger log = LoggerFactory.getLogger(getClass());        /**       * 发送模板消息       * appId 公众账号的唯一标识       * appSecret 公众账号的密钥       * openId 用户标识       */      public void send_template_message(String appId, String appSecret, String openId) {          AccessToken token = WeixinUtil.getAccessToken(appId, appSecret);          String access_token = token.getToken();          String url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+access_token;          WxTemplate temp = new WxTemplate();          temp.setUrl("http://weixin.qq.com/download");          temp.setTouser(openId);          temp.setTopcolor("#000000");  //        temp.setTemplate_id("ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY");          temp.setTemplate_id("LBBm6qscHUcz-0Gh7PlBonsLKtJBHjCLIirnaiBZ4xQ");          Map<String,TemplateData> m = new HashMap<String,TemplateData>();          TemplateData first = new TemplateData();          first.setColor("#000000");            first.setValue("这里填写您要发送的模板信息");            m.put("first", first);            TemplateData name = new TemplateData();            name.setColor("#000000");            name.setValue("另一行内人");            m.put("name", name);          TemplateData wuliu = new TemplateData();            wuliu.setColor("#000000");            wuliu.setValue("N行");            m.put("wuliu", wuliu);          TemplateData orderNo = new TemplateData();            orderNo.setColor("#000000");            orderNo.setValue("**666666");            m.put("orderNo", orderNo);          TemplateData receiveAddr = new TemplateData();            receiveAddr.setColor("#000000");            receiveAddr.setValue("*测试模板");            m.put("receiveAddr", receiveAddr);          TemplateData remark = new TemplateData();            remark.setColor("#000000");            remark.setValue("***备注说明***");            m.put("Remark", remark);          temp.setData(m);          String jsonString = JSONObject.fromObject(temp).toString();          JSONObject jsonObject = WeixinUtil.httpRequest(url, "POST", jsonString);          System.out.println(jsonObject);          int result = 0;          if (null != jsonObject) {                 if (0 != jsonObject.getInt("errcode")) {                     result = jsonObject.getInt("errcode");                   log.error("错误 errcode:{} errmsg:{}", jsonObject.getInt("errcode"), jsonObject.getString("errmsg"));                 }             }          log.info("模板消息发送结果:"+result);      }

第四步:截图示意

来自: http://my.oschina.net/xshuai/blog/602469