微信通知

简介: 本文档介绍了通过企业微信API发送消息所需的前置条件及步骤,包括获取access_token和发送消息的具体Java代码示例。前置条件涉及企业微信与小程序的相关配置信息,如appId、secret等。示例代码展示了如何异步处理请求,并解析响应数据以获取用户列表,同时提供了处理医生编号的辅助方法。

1.前置条件
企业微信appId
企业微信secret
企业微信绑定小程序
小程序的appId
2.发送示例
2.1 获取access_token(HTTPS-GET)
请求URL:
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=corpid&corpsecret=corpsecret
示例入参:
corpid=wx161we55e1fe5e4fr
corpsecret=Rspav9pmjem3zve8fkjqe6yTtCs78Rwdabn6tNdU1g
2.2 发送
完整代码示例(建议异步)
Java
复制代码
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
private static final ThreadLocal synExecuteService = ThreadLocal.withInitial(() -> Executors.newFixedThreadPool(200));
imsServiceDomainConfigStr = imsServiceDomainConfigStr + "?access_token=" + accessToken.getToken();
String result = HUHttpUtil.sendJsonPostRequest(imsServiceDomainConfigStr, jsonParam, 0);
logger.info("开始发送微信企业号消息,结果:" + result);
} else {
logger.info("该医生" + doctorNo + "在企业号通讯录中不存在,终止发送企业号消息");
}
});
}

/**

 * 发送GET请求
 *
 * @param requestUrl
 * @param requestMethod
 * @param outputStr
 * @return
 */

public static JSONObject httpRequest(String requestUrl, String requestMethod, String outputStr) {
logger.info("[WeixinUtil.httpRequest]:请求入参:" + requestUrl);
String respStr = HUHttpUtil.sendGet(requestUrl, null);
logger.info("[WeixinUtil.httpRequest]:请求响应:" + respStr);
try {
return JSON.parseObject(respStr);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

private List getWXQYUserList(JSONObject hResponse) {
List wXQYUserList = (List) hResponse.get("userlist");
List nmList = null;
WXQYUser wxQYUser = null;
JSONObject mm = null;
List wxQYUserList = new ArrayList();
for (JSONObject jsObject : wXQYUserList) {
if (jsObject.containsKey("userid")) {
if (jsObject.containsKey("extattr")) {
mm = jsObject.getJSONObject("extattr");
if (null != mm.get("attrs")) {
nmList = (List) mm.get("attrs");
for (JSONObject nmObject : nmList) {
if (nmObject.containsKey("name") && "hisid".equals(nmObject.getString("name"))
&& null != nmObject.getString("value") && !"".equals(nmObject.getString("value"))) {
wxQYUser = new WXQYUser();
wxQYUser.setUserid(jsObject.getString("userid"));
wxQYUser.setName(jsObject.getString("name"));
wxQYUser.setMobile(jsObject.getString("mobile"));
wxQYUser.setHisid(nmObject.getString("value"));
wxQYUserList.add(wxQYUser);
}
}
}
}
}
}
return wxQYUserList;
}

// 企业微信存储12345,数据库存储:医院ID+12345,随意这里做截取再去匹配
private String getDoctorNo(String doctorNo) {
if (doctorNo.startsWith("10000")) {
return doctorNo.substring(5, doctorNo.length());
}
if (doctorNo.startsWith("10001")) {
return doctorNo.substring(5, doctorNo.length());
}

return doctorNo;

}
Java
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
class WXQYUser {

private String userid;

private String name;

private String mobile;

private String hisid;

public String getUserid() {
    return userid;
}

public void setUserid(String userid) {
    this.userid = userid;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getMobile() {
    return mobile;
}

public void setMobile(String mobile) {
    this.mobile = mobile;
}

public String getHisid() {
    return hisid;
}

public void setHisid(String hisid) {
    this.hisid = hisid;
}

}

目录
相关文章
|
JSON 运维 JavaScript
教你如何快速接入微信消息通知,使用消息推送服务,「传息」推送消息到个人微信
教你如何快速接入微信消息通知,使用消息推送服务,「传息」推送消息到个人微信
1786 0
|
6月前
|
API 开发工具
企业微信api接口调用-触发推送企业微信微信好友
企业微信api接口调用-触发推送企业微信微信好友
|
6月前
|
API 开发工具
企业微信api接口调用-触发推送企业微信联系人列表
企业微信api接口调用-触发推送企业微信联系人列表
|
SQL 监控 机器人
钉钉通知
本文讲实现Java代码调用钉钉机器人API,发送指定告警消息的效果,以满足用户对于系统的实时监控。 API:https://open.dingtalk.com/document/orgapp/custom-robots-send-group-messages 每个机器人每分钟最多发送20条消息到群里,如果超过20条,会限流10分钟。 重要 如果有大量发消息的场景(譬如系统监控报警)可以将这些信息进行整合,通过markdown消息以摘要的形式发送到群
303 0
C#调用钉钉接口发送图片群消息
C#调用钉钉接口发送图片群消息
392 0
|
小程序 前端开发 API
手把手教你接入抖音小程序发送模板消息通知
模板消息是指:按照一定的模板样式发送给用户的消息,顾名思义,它的内容必须限制在某一个模板框框内,只能做填空题,做不了主观题。
370 0
手把手教你接入抖音小程序发送模板消息通知
|
iOS开发
iOS开发 - 千万不要把通知注册写在viewWillAppera里面
iOS开发 - 千万不要把通知注册写在viewWillAppera里面
100 0
|
API
autojs发微信通知
牙叔教程 简单易学 使用场景 给微信发送通知
627 0
微信 - 微信怎么解除自动续费?
微信 - 微信怎么解除自动续费?
112 0
微信 - 微信怎么解除自动续费?
|
JSON 开发者 数据格式
微信服务号通过客服接口主动给普通微信号推送消息
当用户主动发消息给公众号的时候(包括发送信息、点击自定义菜单、订阅事件、扫描二维码事件、支付成功事件、用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前修改为48小时)可以调用客服消息接口,通过POST一个JSON数据包来发送消息给普通用户,在48小时内不限制发送次数。此接口主要用于客服等有人工消息处理环节的功能,方便开发者为用户提供更加优质的服务。
515 0
微信服务号通过客服接口主动给普通微信号推送消息