微信公众平台消息接口(PHP)-官方的Demo有问题
微信公众平台消息接口(PHP)-官方的Demo有问题,下面个人进行了处理,事例代码也跑不通,我研究了一番,终于搞定.
首先: 在你的服务器上上传好一个接口文件,如http://HdhCmsTestphpfensi测试数据/weixin.php 内容如下:
<?php define( "TOKEN" , "weixin" ); define( "MESS" , "输入点啥吧" ); $wechatObj = new wechatCallbackapiTest(); $wechatObj ->valid(); //$wechatObj->responseMsg(); class wechatCallbackapiTest { public function valid() { $echoStr = $_GET [ "echostr" ]; if ( $this ->checkSignature()){ echo $echoStr ; exit ; } } public function responseMsg() { $postStr = $GLOBALS [ "HTTP_RAW_POST_DATA" ]; if (! empty empty ( $postStr )){ $postObj = simplexml_load_string( $postStr , 'SimpleXMLElement' , LIBXML_NOCDATA); $fromUsername = $postObj ->FromUserName; $toUsername = $postObj ->ToUserName; $keyword = trim( $postObj ->Content); $time = time(); $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0<FuncFlag> </xml>"; if (! empty empty ( $keyword )) { $msgType = "text" ; $contentStr = MESS; $resultStr = sprintf( $textTpl , $fromUsername , $toUsername , $time , $msgType , $contentStr ); echo $resultStr ; } else { echo MESS; } } else { echo MESS; 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; } } } ?>然后: 设置回复接口,填好URL和Token(必须跟上面定义的Token一致),这个接口先要验证,成功之后再注释掉$wechatObj->valid(); 这行,同时去掉//$wechatObj->responseMsg();这行的注释.
消息接口就可以使用了,发个消息试试看吧?
查看更多关于微信公众平台消息接口(PHP)-官方的Demo有问题 -的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did30085