微信平台 java_java微信公众平台开发

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

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

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

b3c66fbe068c50a3d54d82250b36ef9a.png

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

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

782d85d6330ebcd946833f35b45804e8.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)这是一种单方向发送的模式:

668979f9a9b1093d197e04e0771ba4cb.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);

JSONObjectjsonObject = 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、付费专栏及课程。

余额充值