《微信公众平台消息接口PHP版开发教程.docx》由会员分享,可在线阅读,更多相关《微信公众平台消息接口PHP版开发教程.docx(11页珍藏版)》请在金锄头文库上搜索。
1、微信公众平台消息接口PHP版开发教程本系列教程以微信公众平台应用妈妈助手(账号mmhelper:发送食物名称或拼音首字母查询孕妇、坐月子、宝宝能不能吃哪些食物。发送自己的位置查询附近的母婴类商家,以及促销、团购等信息。发送与宝宝的合照测试与宝宝本系列教程以微信公众平台应用妈妈助手(账号mmhelper:发送食物名称或拼音首字母查询孕妇、坐月子、宝宝能不能吃哪些食物。发送自己的位置查询附近的母婴类商家,以及促销、团购等信息。发送与宝宝的合照测试与宝宝的脸部相似度)为例,讲解微信接口开发过程。欢迎大家关注该账号,二维码见底部图。使用前提条件:拥有一个公网上的HTTP服务器主机空间,具有创建目录、上
2、传文件等权限。推荐新浪的SAE。http:/ 内容如下:valid();/$wechatObj-responseMsg();class wechatCallbackapiTestpublic function valid()$echoStr = $_GETechostr;if($this-checkSignature()echo $echoStr;exit;public function responseMsg()$postStr = $GLOBALSHTTP_RAW_POST_DATA;if (!empty($postStr)$postObj = simplexml_load_string(
3、$postStr, SimpleXMLElement, LIBXML_NOCDATA);$fromUsername = $postObj-FromUserName;$toUsername = $postObj-ToUserName;$keyword = trim($postObj-Content);$time = time();$textTpl = %s0;if(!empty( $keyword )$msgType = text;$contentStr = 你好啊,屌丝;$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $ti
4、me, $msgType, $contentStr);echo $resultStr;elseecho 咋不说哈呢;else echo 咋不说哈呢;exit;private function checkSignature()$signature = $_GETsignature;$timestamp = $_GETtimestamp;$nonce = $_GETnonce;$token =TOKEN;$tmpArr = array($token, $timestamp, $nonce);sort($tmpArr);$tmpStr = implode( $tmpArr );$tmpStr = s
5、ha1( $tmpStr );if( $tmpStr = $signature )return true;elsereturn false;?二、配置微信公众平台回复接口设置回复接口,填好URL和Token(url填上面的http:/ 这行,同时去掉/$wechatObj-responseMsg();这行的注释。你可以修改responseMsg函数里面的代码,根据用户的消息类型(text,image,location)和消息内容来回复用户不同的内容。消息接口就可以使用了,发个消息试试看吧?封装weixin.class.php由于微信公众平台的通信使用的是特定格式的XML数据,每次接受和回复都要
6、去做一大堆的数据处理。我们就考虑在这个基础上做一次封装,weixin.class.php,代码如下:token = $token;$this-debug = $debug; /获得用户发过来的消息(消息内容和消息类型 )public function getMsg()$postStr = $GLOBALSHTTP_RAW_POST_DATA;if ($this-debug) $this-write_log($postStr);if (!empty($postStr) $this-msg = (array)simplexml_load_string($postStr, SimpleXMLElem
7、ent, LIBXML_NOCDATA);$this-msgtype = strtolower($this-msgMsgType); /回复文本消息public function makeText($text=)$CreateTime = time();$FuncFlag = $this-setFlag ? 1 : 0;$textTpl = msgFromUserNamemsgToUserName$CreateTime%s;return sprintf($textTpl,$text,$FuncFlag); /根据数组参数回复图文消息public function makeNews($newsD
8、ata=array()$CreateTime = time();$FuncFlag = $this-setFlag ? 1 : 0;$newTplHeader = msgFromUserNamemsgToUserName$CreateTime%s;$newTplItem = ;$newTplFoot = %s;$Content = ;$itemsCount = count($newsDataitems);$itemsCount = $itemsCount $item) if ($keydebug) $this-write_log($data);echo $data;public function valid()if ($this-checkSignature() if( $_SERVERREQUEST_METHOD=GET )echo $_GETechostr;exit;