PHP微信开发之文本自动回复介绍

互联网 17-3-13
这篇文章PHP微信开发之文本自动回复介绍的相关资料,感兴趣的小伙伴们可以参考一下

修改配置,修改配置的时候,注意:

URL是你自己的域名下的PHP脚本(往下读有该脚本的demo),该脚本用于和微信接口对接。比如http://www.example.com/weixin.php

Token是上述脚本里的定义的一个常量,比如你的PHP脚本里定义了:

define("TOKEN", "my_weixin");

那么,在填写Token时,你就填abcdefgh

填好之后,保存(如果保存时,提示Token验证失败,那么请确认token一致并多点几次保存试试)。

header('content-type:text/html;charset=utf-8');    define("TOKEN", "my_weixin"); //define your token  $wx = new wechatCallbackapiTest();    if($_GET['echostr']){   $wx->valid(); //如果发来了echostr则进行验证  }else{   $wx->responseMsg(); //如果没有echostr,则返回消息  }      class wechatCallbackapiTest{     public function valid(){ //valid signature , option      $echoStr = $_GET["echostr"];    if($this->checkSignature()){ //调用验证字段     echo $echoStr;     exit;    }   }     public function responseMsg(){       //get post data, May be due to the different environments    $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //接收微信发来的XML数据      //extract post data   if(!empty($postStr)){           //解析post来的XML为一个对象$postObj     $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);         $fromUsername = $postObj->FromUserName; //请求消息的用户     $toUsername = $postObj->ToUserName; //"我"的公众号id     $keyword = trim($postObj->Content); //消息内容     $time = time(); //时间戳     $msgtype = 'text'; //消息类型:文本     $textTpl = "<xml>    <ToUserName><![CDATA[%s]]></ToUserName>    <FromUserName><![CDATA[%s]]></FromUserName>    <CreateTime>%s</CreateTime>    <MsgType><![CDATA[%s]]></MsgType>    <Content><![CDATA[%s]]></Content>    </xml>";      if($keyword == 'hehe'){      $contentStr = 'hello world!!!';      $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);      echo $resultStr;      exit();                 }else{      $contentStr = '输入hehe试试';      $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);      echo $resultStr;      exit();     }      }else {     echo "";     exit;    }   }      //验证字段   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;   }   }  }

如果发送消息,系统提示:该公众平台暂时不能提共服务,请稍后再试。那么多半是代码语法有问题,检查好语法错误再试试。

附:

在新用户关注你的公众号时,自动返回信息:(把这段代码加在判断$keyword之前)。

   if($postObj->MsgType == 'event'){ //如果XML信息里消息类型为event      if($postObj->Event == 'subscribe'){ //如果是订阅事件       $contentStr = "欢迎订阅misaka去年夏天!\n更多精彩内容:http://www.php.cn/";       $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);       echo $resultStr;       exit();      }     }

以上就是PHP微信开发之文本自动回复介绍的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: php 微信开发
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:微信公众号开发实现点击返回按钮就返回到聊天界面示例代码

相关资讯