您好,欢迎访问一九零五行业门户网

Java实现微信公众平台开发的图文代码实例

微信公众平台的开发,总体说来也是简单的,就是先大概看下微信公众平台接口文档。
请先大概浏览一下api手册,我们会发现,推送给微信服务器的数据有两种:xml的形式,和json的形式.
那么什么时候是xml格式,什么时候是json格式呢?
废话不多说,先上个流程图:用户发送任意文字,我们回复一条图文消息:
(1)这是一种接收消息--回复消息的模式:
2标志的xml格式:
<xml> <tousername><![cdata[touser]]></tousername> <fromusername><![cdata[fromuser]]></fromusername> <createtime>1348831860</createtime> <msgtype><![cdata[text]]></msgtype> <content><![cdata[this is a test]]></content> <msgid>1234567890123456</msgid> </xml>
3标志的xml格式:
<xml> <tousername><![cdata[touser]]></tousername> <fromusername><![cdata[fromuser]]></fromusername> <createtime>12345678</createtime> <msgtype><![cdata[news]]></msgtype> <articlecount>2</articlecount> <articles> <item> <title><![cdata[title1]]></title> <description><![cdata[description1]]></description> <picurl><![cdata[picurl]]></picurl> <url><![cdata[url]]></url> </item> <item> <title><![cdata[title]]></title> <description><![cdata[description]]></description> <picurl><![cdata[picurl]]></picurl> <url><![cdata[url]]></url> </item> </articles> </xml>==》这就说明我们想要发送图文消息出去,还要构造图文消息。需要sendmessagevo:
public class sendmessagevo { // 开发者微信号 private string tousername; // 发送方帐号(一个openid) private string fromusername; // 消息创建时间 (整型) private long createtime; // 消息类型(text/image/location/link) private string msgtype; // 图文消息个数,限制为10条以内 private int articlecount; // 多条图文消息信息,默认第一个item为大图 private list<articlevo> articles;}
public class articlevo { // 图文消息名称 private string title; // 图文消息描述 private string description; // 图片链接,支持jpg、png格式,较好的效果为大图640*320,小图80*80,限制图片链接的域名需要与开发者填写的基本资料中的url一致 private string picurl; // 点击图文消息跳转链接 private string url;}这些属性都是和xml里面的元素一一对应的。通过将对象转换成xml格式,然后return就可以。
// 调用核心业务类接收消息、处理消息跟推送消息 @requestmapping(value = "", method = requestmethod.post) public void post(printwriter out, httpservletrequest req, httpservletresponse response) { jsonobject str= weixinservice.processrequest(req); out.print(str); }
以上:我们接收到微信服务器的post请求,经过解析后,获得openid,然后构造我们自己的xml数据,返回给微信服务器,微信服务器就会把我们的消息发送给用户。
(2)这是一种单方向发送的模式:
注意,这里构造的不再是xml格式,而是json数据:
{ "touser":"openid", "template_id":"ngqipbwh8bufcssecmogfxcv14j0tqlepbo27izeyty", "url":"http://weixin.qq.com/download", "miniprogram":{ "appid":"xiaochengxuappid12345", "pagepath":"index?foo=bar" }, "data":{ "first": { "value":"恭喜你购买成功!", "color":"#173177" }, "keynote1":{ "value":"巧克力", "color":"#173177" }, "keynote2": { "value":"39.8元", "color":"#173177" }, "keynote3": { "value":"2014年9月22日", "color":"#173177" }, "remark":{ "value":"欢迎再次购买!", "color":"#173177" } } }标红的是必填选项。模板的内容可以在公众号中模板的模块中查看。
string putstr = jsonobject.tojsonstring(sendtemplatevo);
string url = send_template_url.replace("access_token", token);jsonobject jsonobject = weixinhttprequest.httprequest(url, "post", putstr);if (!("ok".equals(jsonobject.getstring("errmsg")))) { system.out.println("发送失败!");}
send_template_url=“https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=access_token”可以在微信api上查看,
jsonobject 里面的内容,可以知道发送失败或成功:
{ "errcode":0, "errmsg":"ok", "msgid":200228332 }
sendtemplatevo对象:
public class sendtemplatevo { private string touser; private string template_id; private string url; private map<string, templatedatavo> data;}public class templatedatavo { private string value; private string color;}
以上:其实说白了,就是自己写一个对象,然后构造成微信服务器规定的格式(json),再调用微信服务器提供的url接口,返回jsonobject成功的话,表示微信服务器已经帮你的消息发送给了用户。
以上就是java实现微信公众平台开发的图文代码实例的详细内容。
其它类似信息

推荐信息