微信服务号可以给关注此号码的粉丝推送消息.消息分为三种:
1.群发消息:给所有关注此微信的人同时发送,但每个月的发送次数有限制。
2.向单个粉丝发送消息:此种功能发送次数没有限制,但是接受消息的粉丝必须在48小时内与服务号有互动,否则服务号的消息发送不出去。
3.模板消息:此消息可以群发,可以单发,发送次数不受限制,但是发送模板的内容必须经过微信官方审核。
由于模板消息发送消息不受限制,所以OA系统用的是模板消息,下面以模板消息接口来讲下怎么推送给用户发送模板信息
模板消息的接口请求说明
http请求方式: POST
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=
上面地址是模板消息的固定地址。
ACCESS_TOKEN:接口凭证
假如我们的接口凭证是X123456.
那么我们发送模板消息的时候就要把
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=X123456
这个地址给POST出去。
Access_token的获得方法:
在微信OA代码里面有个公众平台通用接口工具类:WechatUtil
里面的方法getAccessToken可以获得ACCESS_TOKEN
http的POST方法:
调用 WechatUtil类里面的方法httpRequest方法。
POST数据说明
POST数据示例如下:
{
"touser":"OPENID",
"template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY",
"url":"http://weixin.qq.com/download",
"data":{
{XXXXXXX}
事由:{XXXXX}
类型:{XXXXX}
时间:{XXXXX}
{XXXXXXX}
}
}
其中关键字"touser","template_id","url","data"是固定的,但后面的参数是不固定的。
"touser"后面的参数是OPENID,每个微信号对应一个OPENID,OPENID在用户关注此公众号时获得
"template_id" 后面的参数是模板ID,每个模板都对应一个模板ID,此ID可以在微信模板库里面查询
"url"后面的参数是点击消息跳转到的页面
"data"是所需要发送消息的内容,为JSON数据.
括号里面XXXXXXX是可以更改的内容,其他的都是模板固定格式。
下面以请假申请的消息推送来说明怎么给指定用户推送模板消息
String OpenId = bservice.queryOpenID(userarrayinfo.get(0));
AccessToken AccessToken =WechatUtil.getAccessToken(Constants.APPID, Constants.APP_SECRET);
String json = WechatUtil.creatTemplate("您好!您有一个假单申请待审核,请您及时审核,谢谢!",OpenId,Constants.jiadan_template,use_nm,billtype,string+"小时",Constants.URL_REST,"点击详情,进行审批!");
String action = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+AccessToken.getToken();
WechatUtil.httpRequest(action,"POST",json);
1. 通过queryOpenID查询发送用户的OPENID
2. 通过getAccessToken获取接口凭证
3. 通过creatTemplate创建data数据
4. 通过接口凭证之后生成POST地址
5. 将data数据,请求地址和请求方式通过httpRequest方法发送出去