微信多客服开发 java_微信公众平台开发(92) 多客服

CopyRight 2014 All Rights Reserved*/

define("TOKEN", "weixin");$wechatObj = newwechatCallbackapiTest();if (!isset($_GET['echostr'])) {$wechatObj->responseMsg();

}else{$wechatObj->valid();

}classwechatCallbackapiTest

{//验证消息

public functionvalid()

{$echoStr = $_GET["echostr"];if($this->checkSignature()){echo $echoStr;exit;

}

}//检查签名

private functioncheckSignature()

{$signature = $_GET["signature"];$timestamp = $_GET["timestamp"];$nonce = $_GET["nonce"];$token =TOKEN;$tmpArr = array($token, $timestamp, $nonce);sort($tmpArr,SORT_STRING);$tmpStr = implode($tmpArr);$tmpStr = sha1($tmpStr);if($tmpStr == $signature){return true;

}else{return false;

}

}//响应消息

public functionresponseMsg()

{$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];if (!empty($postStr)){$this->logger("R ".$postStr);$postObj = simplexml_load_string($postStr, 'SimpleXMLElement',LIBXML_NOCDATA);$RX_TYPE = trim($postObj->MsgType);switch ($RX_TYPE)

{case "event":

$result = $this->receiveEvent($postObj);break;case "text":

$result = $this->receiveText($postObj);break;

}$this->logger("T ".$result);echo $result;

}else{echo "";exit;

}

}//接收事件消息

private function receiveEvent($object)

{switch ($object->Event)

{case "subscribe":

$content[] = array("Title" =>"欢迎关注方倍工作室", "Description" =>"使用方法:\n1.发送快递单号,例如6367532560,可查询快递详情", "PicUrl" =>"http://www.3856.cc/weixin/weixin/logo.jpg", "Url" =>"");break;default:

$content = "receive a new event: ".$object->Event;break;

}if(is_array($content)){if (isset($content[0])){$result = $this->transmitNews($object, $content);

}else if (isset($content['MusicUrl'])){$result = $this->transmitMusic($object, $content);

}

}else{$result = $this->transmitText($object, $content);

}return $result;

}//接收文本消息

private function receiveText($object)

{$keyword = trim($object->Content);if($keyword == "时间" || $keyword == "测试"){$content = date("Y-m-d H:i:s",time());$result = $this->transmitText($object, $content);

}//触发多客服模式

else if (strstr($keyword, "您好") || strstr($keyword, "你好") || strstr($keyword, "在吗") || strstr($keyword, "有人吗")){$result = $this->transmitService($object);return $result;

}return $result;

}private function transmitText($object, $content)

{$textTpl = "

%s

";$result = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content);return $result;

}private function transmitNews($object, $newsArray)

{if(!is_array($newsArray)){return;

}$itemTpl = "

";$item_str = "";foreach ($newsArray as $item){$item_str .= sprintf($itemTpl, $item['Title'], $item['Description'], $item['PicUrl'], $item['Url']);

}$newsTpl = "

%s

%s

$item_str

";$result = sprintf($newsTpl, $object->FromUserName, $object->ToUserName, time(), count($newsArray));return $result;

}private function transmitMusic($object, $musicArray)

{$itemTpl = "

";$item_str = sprintf($itemTpl, $musicArray['Title'], $musicArray['Description'], $musicArray['MusicUrl'], $musicArray['HQMusicUrl']);$textTpl = "

%s

$item_str";$result = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time());return $result;

}//回复多客服消息

private function transmitService($object)

{$xmlTpl = "

%s

";$result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time());return $result;

}private function logger($log_content)

{if(isset($_SERVER['HTTP_APPNAME'])){ //SAE

sae_set_display_errors(false);

sae_debug($log_content);

sae_set_display_errors(true);

}else if($_SERVER['REMOTE_ADDR'] != "127.0.0.1"){ //LOCAL

$max_size = 10000;$log_filename = "log.xml";if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);}file_put_contents($log_filename, date('H:i:s')." ".$log_content."\r\n",FILE_APPEND);

}

}

}?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值