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

微信公众平台的开发,总体说来也是简单的,就是先大概看下微信公众平台接口文档。

请先大概浏览一下API手册,我们会发现,推送给微信服务器的数据有两种:xml的形式,和json的形式.

那么什么时候是XML格式,什么时候是json格式呢?

ca8aadd4b696466a76f40e6403a07d76.png

废话不多说,先上个流程图:用户发送任意文字,我们回复一条图文消息:

(1)这是一种接收消息--回复消息的模式:

62d554dd6b38b3c832d51c7ee969b487.png

2标志的xml格式:

1348831860

1234567890123456

3标志的xml格式:

12345678

2

==》这就说明我们想要发送图文消息出去,还要构造图文消息。需要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 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)这是一种单方向发送的模式:

f8ff8686f8a066fce597648d5f9affa9.png

注意,这里构造的不再是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 data;}public class TemplateDataVo { private String value; private String color;}

以上:其实说白了,就是自己写一个对象,然后构造成微信服务器规定的格式(json),再调用微信服务器提供的URL接口,返回jsonObject成功的话,表示微信服务器已经帮你的消息发送给了用户。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值