如何使用微信企业号发送消息实现给不同用户发送不同的消息

微信企业号功能介绍()_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者
评价文档:
微信企业号功能介绍()
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:3.40MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢腾讯内部揭密:微信企业号为何首推企微云平台
根据权威预测,2015年将迎来企业移动互联的发展元年。微信企业号的推出,正在加速企业移动互联发展的进程。从去年微信企业号推出之际,本人就一直关注其发展态势,虽然企业号现在还是夯实基础阶段,却不断的给市场带来不小的惊喜和振动。
日,微信企业号低调发布一个公告,&目前已有一些云应用提供商做出了较好的应用套件,帮企业快速接入并使用企业号&。其中首推企微云平台,据本人的观察,这个从去年的低调表现今年一跃成为微信企业号官方首推的第三方应用服务平台,背后到底有什么故事?
通过为企业以快速和便捷的方式实现信息传递、信息获取、工作协同、企业管理,这是企业号实现连接企业的目标。那么为何企微云平台能够成为微信企业号官方推荐的首选目标?
根据腾讯内部爆料和研究,我们一起揭开企微云平台成为首推应用的面纱。
一、提供适合企业组织的轻量级应用
这其中包含三个点,分别是适合、面向企业组织、轻量级。
1)所谓适合即是能够从企业实际出发,提供满足业务需求的应用。比如企微云平台的新闻公告应用,虽然是非常小的应用,但是通过提供多种消息模板、定时群发消息、生日祝福自由配置自动发送、春节祝福定时发送等功能,可以满足企业不同场景下的消息发送需求。
2)其次面向企业组织,这必须跟微信企业号的定位保持一直,面向企业组织提供应用服务。
3)轻量级,简单但不失功能,是将传统复杂的业务逻辑和功能重新设计,精简化、降低应用的复杂度,满足移动场景的需要,同时还能与传统的应用功能相媲美。这个其实是件不容易的事情,但是企微云平台给用户呈现的真正做到了轻量级。
二、&以场景为基础,极速深化和扩展应用
不管从产品和运营的角度出发,以场景为基础,不断深化和扩展应用都是非常聪明而巧妙的。一方面通过实际应用场景满足企业不断维度的需求;另一方面可以确保产品沿着固定的方向稳步推进,避免陷入过渡设计和臆断需求的误区。
那么企微云平台挖掘了哪些应用场景呢?从目前的信息可以看到,至少包括四个,分别是日常运营、沟通协作、销售管理、信息采集。
在这些场景的基础上,根据用户的反馈和实际运营,不断对应用进行升级,并且对具有共性的应用单元进行拆分组件化,然后再组合,从而快速开发出新的应用,从而满足更加个性更加深度的企业需求。据了解,企微云平台可以在一周内更新一个版本,用户提出的问题甚至当天可以修复,并快速上线,大大提升用户的体验。
三、用户活跃度高,带来持续稳定的企业号用户
前面两点是企微云平台的产品和运营实力,但能够成为微信企业号首推的应用服务平台,关键还是看数据说话。据腾讯内部爆料,企微云平台的用户活跃度是所有应用服务商中最高的,并且能够带来持续而稳定的企业号用户。这对于微信来说无疑是非常振奋的,当然为了更好的激励应用服务商,自然而然的也帮助其向企业号用户推荐其产品。
四、这是一种双赢
微信企业号作为平台级产品,利用推荐来帮助第三方应用服务商积累用户,实际上是一种双赢的策略。对像企微云平台这样的第三方应用服务商来说,其具有非常丰富的企业应用研发经验和企业客户服务管理经验,可以为企业号用户提供较高的服务水准,对提升用户关注度和活跃度具有巨大的帮助。对企微云平台来说,从中获取自身的价值和利益;与此同时,微信企业号也可以更快实现&连接企业&、&连接一切&的目标,进而构建自己的企业移动互联微生态圈。
最新图文推荐
最新专栏文章
大家感兴趣的内容
网友热评的文章
seajs.config({
base: "/resource/passapi/scripts/"
seajs.use('seajs/seajs-css');
seajs.use(['artdialog/src/dialog-plus'], function (dialog) {
$('#favorite').on('click', function(){
$.getJSON('/passapi.php?op=userstatus&callback=?', function(data){
if (data.status == 1) {
var _this = $('#favorite').find('span');
$.getJSON('/?app=favorite&controller=favorite&action=add&jsoncallback=?&contentid='+contentid, function(json){
if(json.state){
_this.html('asp.net 如何主动调用微信企业号接口,发送文本消息
[问题点数:100分,结帖人edisongao]
asp.net 如何主动调用微信企业号接口,发送文本消息
[问题点数:100分,结帖人edisongao]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关推荐:
2014年4月 荣获微软MVP称号
2014年12月 企业软件大版内专家分月排行榜第一2014年11月 企业软件大版内专家分月排行榜第一2014年7月 企业软件大版内专家分月排行榜第一2011年10月 企业开发大版内专家分月排行榜第一2011年5月 企业开发大版内专家分月排行榜第一2011年3月 企业开发大版内专家分月排行榜第一2010年12月 企业开发大版内专家分月排行榜第一2010年11月 企业开发大版内专家分月排行榜第一2010年9月 企业开发大版内专家分月排行榜第一2010年8月 企业开发大版内专家分月排行榜第一2010年7月 企业开发大版内专家分月排行榜第一2010年6月 企业开发大版内专家分月排行榜第一2010年5月 企业开发大版内专家分月排行榜第一
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。微信企业号接收消息(使用SpringMVC)
微信企业号接收消息(使用SpringMVC)
微信企业号接收消息(使用SpringMVC)
将应用设置在回调模式时,企业可以通过回调URL接收员工回复的消息,以及员工关注、点击菜单、上报地理位置等事件。
在接收到事件后,企业可以发送被动响应消息,实现员工与企业的互动。
注意,企业在接收消息,以及发送被动响应消息时,消息体都以AES方式加密,以保证传输的安全。
接收普通消息
普通消息是指员工向企业号应用发送的消息,包括文本、图片、语音、视频、地理位置等类型。
事件是指员工在企业号上的某些操作行为,比如关注、上报地理位置、点击菜单等。(关注事件请参考’关注与取消关注’)
以上文档必须仔细阅读,
消息处理流程大致如下,比较简陋!
具体实现如下:
在文章 微信企业号接入(使用SpringMVC)的基础上实现!
在消息回复处理中添加自己的业务,对于关注事件和取消关注事件如有需要加入即可!
对于xml的处理有多种方式,大家可以任选一种!
此处需要说明的是腾讯的文档必须要完完整整的看,有些看文档就有答案的!
package org.oms.qiye.
import java.io.IOE
import java.io.InputS
import java.io.PrintW
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import org.oms.qiye.aes.AesE
import org.oms.qiye.aes.WXBizMsgC
import org.oms.qiye.service.CoreS
import org.springframework.stereotype.C
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.RequestM
import mons.io.IOU
* 注解方式打开链接
* @author Sunlight
@Controller
public class CoreController {
private String token = "sunlight";
private String encodingAESKey = "s8vFF4f6AWay3uAdJh79WD6imaam4BV6Kl4eL4UzgfM";
private String corpId = "此处修改为你的企业ID";
@RequestMapping(value = { "/coreJoin.do" }, method = RequestMethod.GET)
public void coreJoinGet(HttpServletRequest request,
HttpServletResponse response) throws IOException {
// 微信加密签名
String msg_signature = request.getParameter("msg_signature");
String timestamp = request.getParameter("timestamp");
String nonce = request.getParameter("nonce");
// 随机字符串
String echostr = request.getParameter("echostr");
System.out.println("request=" + request.getRequestURL());
PrintWriter out = response.getWriter();
// 通过检验signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败
String result =
WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(token, encodingAESKey,
result = wxcpt.VerifyURL(msg_signature, timestamp, nonce, echostr);
} catch (AesException e) {
e.printStackTrace();
if (result == null) {
out.print(result);
out.close();
@RequestMapping(value = { "/coreJoin.do" }, method = RequestMethod.POST)
public void coreJoinPost(HttpServletRequest request,
HttpServletResponse response) throws IOException {
// 将请求、响应的编码均设置为UTF-8(防止中文乱码)
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
// 微信加密签名
String msg_signature = request.getParameter("msg_signature");
String timestamp = request.getParameter("timestamp");
String nonce = request.getParameter("nonce");
//从请求中读取整个post数据
InputStream inputStream = request.getInputStream();
String postData = IOUtils.toString(inputStream, "UTF-8");
System.out.println(postData);
String msg = "";
WXBizMsgCrypt wxcpt =
wxcpt = new WXBizMsgCrypt(token, encodingAESKey, corpId);
//解密消息
msg = wxcpt.DecryptMsg(msg_signature, timestamp, nonce, postData);
} catch (AesException e) {
e.printStackTrace();
System.out.println("msg=" + msg);
// 调用核心业务类接收消息、处理消息
String respMessage = CoreService.processRequest(msg);
System.out.println("respMessage=" + respMessage);
String encryptMsg = "";
//加密回复消息
encryptMsg = wxcpt.EncryptMsg(respMessage, timestamp, nonce);
} catch (AesException e) {
e.printStackTrace();
// 响应消息
PrintWriter out = response.getWriter();
out.print(encryptMsg);
out.close();
CoreService类:package org.oms.qiye.
import java.util.D
import java.util.M
import org.oms.qiye.pojo.resp.TextM
import org.oms.qiye.util.MessageU
* 处理微信发来的信息
* @author Sunlight
public class CoreService {
public static String processRequest(String msg) {
String respMessage =
// 默认返回的文本消息内容
String respContent = "请求处理异常,请稍候尝试!";
// xml请求解析
Map&String, String& requestMap = MessageUtil.parseXml(msg);
System.out.println("Event=="+requestMap.get("Event"));
// 发送方帐号(open_id)
String fromUserName = requestMap.get("FromUserName");
// 公众帐号
String toUserName = requestMap.get("ToUserName");
// 消息类型
String msgType = requestMap.get("MsgType");
// 回复文本消息
TextMessage textMessage = new TextMessage();
textMessage.setToUserName(fromUserName);
textMessage.setFromUserName(toUserName);
textMessage.setCreateTime(new Date().getTime());
textMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);
textMessage.setFuncFlag(0);
// 文本消息
if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)) {
String content = requestMap.get("Content");
respContent = "Sunlight提示:您发送的是文本消息!内容是:"+
// 图片消息
else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_IMAGE)) {
respContent = "Sunlight提示:您发送的是图片消息!";
// 地理位置消息
else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_LOCATION)) {
respContent = "Sunlight提示:您发送的是地理位置消息!";
// 链接消息
else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_LINK)) {
respContent = "Sunlight提示:您发送的是链接消息!";
// 音频消息
else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_VOICE)) {
respContent = "Sunlight提示:您发送的是音频消息!";
// 事件推送
else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_EVENT)) {
// 事件类型
String eventType = requestMap.get("Event");
// 自定义菜单点击事件
if (eventType.equalsIgnoreCase(MessageUtil.EVENT_TYPE_CLICK)) {
// 事件KEY值,与创建自定义菜单时指定的KEY值对应
String eventKey = requestMap.get("EventKey");
System.out.println("EventKey="+eventKey);
respContent = "Sunlight提示:您点击的菜单KEY是"+eventK
textMessage.setContent(respContent);
respMessage = MessageUtil.textMessageToXml(textMessage);
} catch (Exception e) {
e.printStackTrace();
System.out.println(e);
respMessage="有异常了。。。";
return respM
MessageUtil类需要修改一下,此类使用了 柳峰 大神写的:package org.oms.qiye.
import java.io.ByteArrayInputS
import java.io.InputS
import java.io.W
import java.util.HashM
import java.util.L
import java.util.M
import org.dom4j.D
import org.dom4j.E
import org.dom4j.io.SAXR
import org.oms.qiye.pojo.resp.A
import org.oms.qiye.pojo.resp.MusicM
import org.oms.qiye.pojo.resp.NewsM
import org.oms.qiye.pojo.resp.TextM
import com.thoughtworks.xstream.XS
import com.thoughtworks.xstream.core.util.QuickW
import com.thoughtworks.xstream.io.HierarchicalStreamW
import com.thoughtworks.xstream.io.xml.PrettyPrintW
import com.thoughtworks.xstream.io.xml.XppD
* 消息工具类
* @author sunlight
public class MessageUtil {
* 返回消息类型:文本
public static final String RESP_MESSAGE_TYPE_TEXT = "text";
* 返回消息类型:音乐
public static final String RESP_MESSAGE_TYPE_MUSIC = "music";
* 返回消息类型:图文
public static final String RESP_MESSAGE_TYPE_NEWS = "news";
* 请求消息类型:文本
public static final String REQ_MESSAGE_TYPE_TEXT = "text";
* 请求消息类型:图片
public static final String REQ_MESSAGE_TYPE_IMAGE = "image";
* 请求消息类型:链接
public static final String REQ_MESSAGE_TYPE_LINK = "link";
* 请求消息类型:地理位置
public static final String REQ_MESSAGE_TYPE_LOCATION = "location";
* 请求消息类型:音频
public static final String REQ_MESSAGE_TYPE_VOICE = "voice";
* 请求消息类型:推送
public static final String REQ_MESSAGE_TYPE_EVENT = "event";
* 事件类型:subscribe(订阅)
public static final String EVENT_TYPE_SUBSCRIBE = "subscribe";
* 事件类型:unsubscribe(取消订阅)
public static final String EVENT_TYPE_UNSUBSCRIBE = "unsubscribe";
* 事件类型:CLICK(自定义菜单点击事件)
public static final String EVENT_TYPE_CLICK = "CLICK";
* 解析微信发来的请求(XML)
* @param request
* @throws Exception
@SuppressWarnings("unchecked")
public static Map&String, String& parseXml(String msg)
throws Exception {
// 将解析结果存储在HashMap中
Map&String, String& map = new HashMap&String, String&();
// 从request中取得输入流
InputStream inputStream = new ByteArrayInputStream(msg.getBytes("UTF-8"));
// 读取输入流
SAXReader reader = new SAXReader();
Document document = reader.read(inputStream);
// 得到xml根元素
Element root = document.getRootElement();
// 得到根元素的所有子节点
List&Element& elementList = root.elements();
// 遍历所有子节点
for (Element e : elementList)
map.put(e.getName(), e.getText());
// 释放资源
inputStream.close();
inputStream =
* 文本消息对象转换成xml
* @param textMessage
文本消息对象
* @return xml
public static String textMessageToXml(TextMessage textMessage) {
xstream.alias("xml", textMessage.getClass());
return xstream.toXML(textMessage);
* 音乐消息对象转换成xml
* @param musicMessage
音乐消息对象
* @return xml
public static String musicMessageToXml(MusicMessage musicMessage) {
xstream.alias("xml", musicMessage.getClass());
return xstream.toXML(musicMessage);
* 图文消息对象转换成xml
* @param newsMessage
图文消息对象
* @return xml
public static String newsMessageToXml(NewsMessage newsMessage) {
xstream.alias("xml", newsMessage.getClass());
xstream.alias("item", new Article().getClass());
return xstream.toXML(newsMessage);
* 扩展xstream,使其支持CDATA块
private static XStream xstream = new XStream(new XppDriver() {
public HierarchicalStreamWriter createWriter(Writer out) {
return new PrettyPrintWriter(out) {
// 对所有xml节点的转换都增加CDATA标记
boolean cdata =
@SuppressWarnings("rawtypes")
public void startNode(String name, Class clazz) {
super.startNode(name, clazz);
protected void writeText(QuickWriter writer, String text) {
if (cdata) {
writer.write("&![CDATA[");
writer.write(text);
writer.write("]]&");
writer.write(text);
项目结构图:
此处消息类的封装可以使用公众号的,此处不在列出!
测试结果:
最后,需要交流的小伙伴可以加入QQ群:
如需转载请注明出处!
如果您想提高自己的技术水平,认识同行朋友、开拓技术视野,请加入QQ群:
Powered by
& 2014 &&&联系本站:您现在的位置:
微信新功能曝光 企业号能用微信支付发工资Yesky天极新闻 07:22
  【Yesky新闻频道消息】6月24日,腾讯团队正式向企业微信公众号开通了支付功能,但仅限认证过的企业号使用。
微信新功能曝光 企业号能用微信支付发工资
  微信团队表示,已认证的企业号可以在企业号管理平台的“服务中心”-“微信支付”入口里申请开通微信支付功能。据悉,开通微信支付功能后企业号将拥有两项最基本也是最重要的的能力――收款和付款。
  同时,微信用户可以对企业进行付款,所付款项将进入企业号所关联的商户号中。
  微信团队表示,企业号旨在帮助企业实现生产、管理、协作、运营的移动化,而微信支付功能的接入能让企业号与员工、上下游供应链与企业IT系统间的连接更加紧密,未来还会有新的场景,比如通过企业号用红包来发奖金,用微信转账支付工资等。
  同时,企业也可以通过微信红包或微信转账的形式,使用企业号对成员进行付款。转账不需要成员领取,直接发到用户微信零钱包。大小节假日,企业还可以通过微信红包来发福利。
【请搜索“TodayTechNews”加关注】
(作者:谢青青责任编辑:谢青青)
IT新闻微信公众平台
第一时间获取新鲜资讯
使用手机扫描左方二维码
大家都在看
* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!
看过本文的人还看过
今天的科技新闻
扫一扫 加关注当天的新鲜热辣资讯都在这里!
本周,央行将对芝麻信用等入围机构再次进行调研,个人征信牌照有望于月底发…
魏总坐在明亮的办公桌后面,一定会想起得到人生中第一只电子手表的那个遥远…
LG G4衍生版LG G4 S或将搭载高通骁龙615处理器,将有望于本…
微软为可穿戴设备微软手环推送固件更新,增加一项小功能,即Emoji表情…
WP8.1版《Skype for Business》应用6.0版发布,…
在3月10日,苹果奏响了春季的第一支“双人华尔兹”,12英寸的MacB…
卡西欧ZS30是一款拥有纤薄靓丽机身的卡片机,拥有2010万有效像素C…
夏天到了,街头也渐渐变得更加五彩斑斓靓丽非凡起来,一众花红酒绿的男女看…
近日苹果更新了WWDC应用,支持Apple Watch。用户可以通过该…
华硕UX501 4K――真正的4K级笔记本,画面精美震撼到超出你想像,…
接触摄影一段时间的朋友通常有这样的一种经历,自己拍摄的照片在自家显示器…
6月8日,小米公司宣布红米手机2A价格从599元调整为499元,并在小…
,Chrome浏览器能够智能暂停非核心内容(比如Flash动画),同时…
这款为数码单反照相机广角镜头,拥有前所未有的10-24MM焦距(相当于…
被誉为“史上最强自拍神器”的卡西欧EXILIM TR系列从第一代产品推…
每日IT极热
document.write("");

我要回帖

更多关于 微信企业号第三方应用 的文章

 

随机推荐