微信客服消息实现被动回复

link 上一篇的那个获取微信消息文章,你可以在接收消息的方法里加入,这里我是为了实现当用户发送指定的文本消息后自动回复。

function sendMsg($access_token,$fromusername){
  	  $contentStr="这是发送内容<a href='http://www.baidu.com'>go</a>";
    	$contentStr=urlencode($contentStr);
    	//$content = $content."<a href='http://www.baidu.com'>go</a>";
    	$a=array("content"=>$contentStr);
    	$this ->creatTextFile($fromusername,'res3444');
    	$b=array("touser"=>"{$fromusername}","msgtype"=>"text","text"=>$a);
    	$this ->creatTextFile(count($b),'res433');
    	$post=json_encode($b);
    	$post=urldecode($post);
  	  $sendUrl = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$access_token;
  	  $result = $this -> http_post_json($sendUrl,$post);
  	  $this ->creatTextFile($result,'res433');
  	}
	private function receiveText($object,$access_token) {
		$funcFlag = 0;
		$contentStr = $object -> Content;
		//this ->show($contentStr);
		$fromusername = $object -> FromUserName;
		$this -> sendMsg($access_token,$fromusername);
		$resultStr = $this -> transmitText($object, $contentStr, $funcFlag);
		return $resultStr;
	}


### Java 实现企业微信被动回复消息 为了实现企业微信中的被动回复功能,需创建一个HTTP接口用于接收来自企业微信消息推送并返回响应。此过程涉及对接收到的信息进行解析、处理以及构建相应的XML格式的回复内容。 对于接收入参部分,通常通过POST方法传递加密后的XML数据体给到开发者服务器地址;而且回复也应遵循同样的XML结构定义[^1]。下面给出一段简化版基于Servlet技术栈下的Java代码片段作为实例: ```java protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置字符集编码方式 request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); // 获取输入流读取请求参数 BufferedReader br = new BufferedReader(new InputStreamReader((ServletInputStream)request.getInputStream())); String line; StringBuilder sb = new StringBuilder(); while ((line = br.readLine()) != null){ sb.append(line); } // 解析xml字符串成对象方便操作 Document doc = DocumentHelper.parseText(sb.toString()); Element rootElt = doc.getRootElement(); // 提取消息类型与内容等必要字段 String msgType = rootElt.elementText("MsgType").toLowerCase(); String content = ""; switch (msgType){ case "text": content = rootElt.elementText("Content"); break; default: System.out.println("其他类型消息..."); return ; } // 构造要发送回去的内容 String respXml = "<xml>" + "<ToUserName><![CDATA[" + rootElt.elementText("FromUserName") + "]]></ToUserName>" + "<FromUserName><![CDATA[" + rootElt.elementText("ToUserName")+ "]]></FromUserName>" + "<CreateTime>"+System.currentTimeMillis()/1000+"</CreateTime>"+ "<MsgType><![CDATA[text]]></MsgType>"+ "<Content><![CDATA[您说:" + content + "]]></Content>"+ "</xml>"; PrintWriter out = response.getWriter(); out.print(respXml); // 输出结果 } ``` 上述代码展示了如何获取由企业微信平台发出的数据包,并从中提取出所需信息(如发信方ID、收件方ID),再依据实际业务逻辑组装新的XML文档形式反馈给对方完成一次完整的交互循环[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值