`
zhengshuo
  • 浏览: 134664 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

微信公众号发送模板消息

 
阅读更多
1.封装微信模板消息类:
public class WxTemplate {
	private String template_id;
	private String touser;
	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;
	}
}

2.封装模板数据
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;
	}
	
}

3.填充模板消息数据
WxTemplate t = new WxTemplate();
				t.setUrl("");
				t.setTouser(open_id));
				t.setTopcolor("#000000");
				t.setTemplate_id(模板ID);
				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 remark = new TemplateData();
				remark.setColor("blue");
				remark.setValue("***备注说明***");
				m.put("Remark", remark);
				t.setData(m);

4.使用JSONObject将类转化成JSON格式
JSONObject.fromObject([color=red]template[/color]).toString())


5.调用发送接口:
public static JSONObject httpRequest(String requestUrl, String requestMethod, String outputStr) {
		JSONObject jsonObject = null;
		StringBuffer buffer = new StringBuffer();
		try {
			// 创建SSLContext对象,并使用我们指定的信任管理器初始化
			TrustManager[] tm = { new MyX509TrustManager() };
			SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
			sslContext.init(null, tm, new java.security.SecureRandom());
			// 从上述SSLContext对象中得到SSLSocketFactory对象
			SSLSocketFactory ssf = sslContext.getSocketFactory();

			URL url = new URL(requestUrl);
			HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection();
			httpUrlConn.setSSLSocketFactory(ssf);

			httpUrlConn.setDoOutput(true);
			httpUrlConn.setDoInput(true);
			httpUrlConn.setUseCaches(false);
			// 设置请求方式(GET/POST)
			httpUrlConn.setRequestMethod(requestMethod);

			if ("GET".equalsIgnoreCase(requestMethod))
				httpUrlConn.connect();

			// 当有数据需要提交时
			if (null != outputStr) {
				OutputStream outputStream = httpUrlConn.getOutputStream();
				// 注意编码格式,防止中文乱码
				outputStream.write(outputStr.getBytes("UTF-8"));
				outputStream.close();
			}

			// 将返回的输入流转换成字符串
			InputStream inputStream = httpUrlConn.getInputStream();
			InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
			BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

			String str = null;
			while ((str = bufferedReader.readLine()) != null) {
				buffer.append(str);
			}
			bufferedReader.close();
			inputStreamReader.close();
			// 释放资源
			inputStream.close();
			inputStream = null;
			httpUrlConn.disconnect();
			jsonObject = JSONObject.fromObject(buffer.toString());
		} catch (ConnectException ce) {
			ce.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return jsonObject;
	}


JSONObject jsonobj = httpRequest(“https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN”, "POST",JSONObject.fromObject(t).toString())

jsonobj为发送返回值
分享到:
评论
4 楼 Dear疼你 2015-11-16  
郑云飞 写道
你好,请问,按照你的代码,为什么Android手机可以收到发送的模板消息内容,而ios手机发送的内容为空白呢?

貌似ios手机不支持"blue"这种方式的颜色处理,换成二进制颜色就可以了
3 楼 di1984HIT 2015-09-18  
学习了。。。
2 楼 zxs6587 2015-09-07  
没有开启开发模式可以使用此接口发送模板消息吗????急求!!
1 楼 郑云飞 2015-07-31  
你好,请问,按照你的代码,为什么Android手机可以收到发送的模板消息内容,而ios手机发送的内容为空白呢?

相关推荐

    java实现微信公众号发送模版消息

    以订单推送为例,主要为大家详细介绍了java实现微信公众号发送模版消息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    thinkphp5.0微信公众号推送消息

    thinkphp 5.0 对接微信公众号,向指定用户发送模板消息

    微信公众号消息模板.rar

    .NET 发送微信公众号模板消息 解压密码 www.shcodetool.com

    php实现微信公众号无限制推送和群发模板消息.docx

    文档通过已认证的微信服务号介绍了微信公众号消息模板的PHP编程对接方法,具有较好的学习和参考价值

    微信公众号主动发消息

    微信公众号主动发消息给用户,微信公众号主动发消息

    springboot实现微信公众号模版消息推送

    springboot实现微信公众号模版消息推送,用的是构架:springboot+redis,详细教程:https://blog.csdn.net/chenhongming888/article/details/95173079

    微信公众号接口调用 java demo

    微信公众号接口调用 java demo, maven工程, 包含获得微信 AccessToken, 获得微信用户信息, 微信公众号用于调用微信JS接口的临时票据, 微信分享, 发送模板消息等

    微信公众号发送模板消息.zip

    自己在微信公众平台中申请模板消息的id;这里没有没有提供获取用户openid的方法,我在之前的一个博客中有写过获取用户openid的代码;...但是恶心的是,这个token不能用来发送模板消息;代码里面有。

    (VB源码)微信公众号消息推送--修改版

    (VB源码)微信公众号消息推送修改版,现在可以根据数据库自动获取accesstoken,方便大家更好的测试。(代码中的数据库连接要换成自己的) 这个代码是从本网下载后修改的,原版:...

    微信消息通知,给微信公众号用户发送消息通知

    微信消息通知,给微信公众号用户发送消息通知 本程序用laravel框架,使用的时候请根据自己的目录结构自行修改命名空间和类名继承等信息

    微信公众号每日消息推送天气给女朋友制作教程

    给女朋友做的微信公众号消息每日自动推送天气及纪念日通知教程,该教程为github每日自动线上运行版本。本人亲测妹子很喜欢~女孩子都喜欢这种用心做的东西! 1.最新版本 成品 +源码 +消息模板 (需要自己申请 天行 ...

    微信公众号极速开发实战项目源代码

    微信模板消息 微信红包 会员注册、找回密码、登陆(邮箱与手机验证码) 微信APP支付 推广支持-临时、永久二维码 支付宝Wap支付 支付宝APP支付 一张二维码同时支持微信、支付宝支付 PC微信扫码登陆、Unio

    微信公众号发通知-代码20810514.zip

    微信公众号可以将消息交给WeixinHandler处理,如果能主动发送通知消息到手机微信就非常方便了,微信公众号的“发送模板消息”接口可以使用

    java实现微信公众平台发送模板消息的示例代码

    主要介绍了java实现微信公众平台发送模板消息的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    微信公众号开发wechatSampele

    (1) 第三方应用程序通过约定接口,传递“微信内容”、”微信模板”、“微信接收人”,“发送间隔”参数,向公众号发送微信,并反馈微信发送结果。 (2) 第三方应用程序通过约定接口,获取微信公众号的通讯录信息。 (3...

    php实现微信模板消息推送

    * 发送模板消息 */ public function send_notice(){ //获取access_token if ($_COOKIE['access_token']){ $access_token2=$_COOKIE['access_token']; }else{ $json_token=$this&gt;curl_post(...

    微信公众号模板消息群发php代码示例

    微信模板消息只能发给一个人,如果要群发,需要通过php循环,依次发送。 注意,如果模板消息发信息时有时无,不稳定,可能你的access_token令牌更新缓存不及时,过期了.可以根据日志文件查看.建议300秒更新一下.否则会很...

    企业微信和公众号小程序消息推送功能.rar

    二、使用微信公众号发送模板消息实现。 使用要求: 1、需要有小程序web开发权限,同时需要将回调域名添加到公众号后台。 2、消息接收者必须关注公众号; 3、消息推送次数限制,现在单个公众号每天限制发送10W次;

    hcWechat微信公众号后台框架

    6.发送模板消息 7.创建自定义菜单 8.获取自定义菜单 9.获取用户信息 10.获取微信服务器IP 11.获取access_token 12.获取用户授权Token 13.回复文本消息 14.回复图文消息 15.消息接收并解析接口 16.接口地址认证检查 ...

    phpWeChat微信公众号开发框架

    phpWeChat高度集成了微信公共号的自动回复、菜单管理、素材管理、模板消息、粉丝管理、微信支付等常用接口,您只需一个函数或2/3行代码即可实现原本需要很费时费力才能开发的功能。 6、phpWeChat也是一个PC(网站)...

Global site tag (gtag.js) - Google Analytics