0
点赞
收藏
分享

微信扫一扫

微信入坑第二弹【自动回复消息上】


功能实现:

不管用户发送什么消息,都回复一条"谢谢您的关注"。

<span style="font-family:Courier New;font-size:14px;"><?php
define("TOKEN","weixin");
$weixinObj = new Wechat();
$weixinObj->valid();

class Wechat{
public function valid(){
$echoStr = $_GET['echostr'];
//如果是第一次接入
if($this->checkSignature() && $echoStr ){
echo $echoStr;
exit;
}else{
$this->responseMsg();
}
}
//校验方法
private function checkSignature(){
$signature = $_GET['signature'];
$timestamp = $_GET['timestamp'];
$nonce = $_GET['nonce'];
$token = TOKEN;

$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
if($tmpStr == $signature){
return true;
}else{
return false;
}
}
/* 普通文本消息
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[this is a test]]></Content>
<MsgId>1234567890123456</MsgId>
</xml>
*/
public function responseMsg(){
//获取微信服务器POST请求中的数据

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
if( !empty($postStr) ){
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUser = $postObj->FromUserName;
$toUser = $postObj->ToUserName;
$keyword = trim($postObj->Content);
$time = time();

$template = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
</xml>";
if( !empty($keyword) ){
$msgType = 'text';
$content = "谢谢您的关注";
$info = sprintf($template, $fromUser, $toUser, $time, $msgType, $content);
echo $info;
}else{
echo "请输入关键字";//消息为空
}
}else{
echo "";
exit;
}
}
}</span>





举报

相关推荐

0 条评论