php专区

 首页 > php专区 > PHP应用 > 常用功能 > 微信公众平台消息接口(PHP)-官方的Demo有问题 -

微信公众平台消息接口(PHP)-官方的Demo有问题 -

分享到:
【字体:
导读:
          微信公众平台消息接口(PHP)-官方的Demo有问题,下面个人进行了处理,事例代码也跑不通,我研究了一番,终于搞定 首先:在你的服务器上上传好一个接口文件,如http: www phpfensi com weixin php 内容...

微信公众平台消息接口(PHP)-官方的Demo有问题

微信公众平台消息接口(PHP)-官方的Demo有问题,下面个人进行了处理,事例代码也跑不通,我研究了一番,终于搞定.

首先:在你的服务器上上传好一个接口文件,如http://www.phpfensi.com/weixin.php  内容如下:

  1. define("TOKEN""weixin");  
  2. define("MESS","输入点啥吧");  
  3. $wechatObj = new wechatCallbackapiTest();  
  4. $wechatObj->valid();  
  5. //$wechatObj->responseMsg();   
  6. class wechatCallbackapiTest  
  7. {  
  8.     public function valid()  
  9.     {  
  10.         $echoStr = $_GET["echostr"];   
  11.         if($this->checkSignature()){  
  12.             echo $echoStr;  
  13.             exit;  
  14.         }  
  15.     }   
  16.     public function responseMsg()  
  17.     {  
  18.         $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];  
  19.         if (!emptyempty($postStr)){  
  20.             $postObj = simplexml_load_string($postStr'SimpleXMLElement', LIBXML_NOCDATA);  
  21.             $fromUsername = $postObj->FromUserName;  
  22.             $toUsername = $postObj->ToUserName;  
  23.             $keyword = trim($postObj->Content);  
  24.             $time = time();  
  25.             $textTpl = "  
  26.               
  27.               
  28.             %s  
  29.               
  30.               
  31.             0  
  32.             ";  
  33.             if(!emptyempty$keyword ))  
  34.             {  
  35.                 $msgType = "text";  
  36.                 $contentStr = MESS;  
  37.                 $resultStr = sprintf($textTpl$fromUsername$toUsername$time$msgType$contentStr);  
  38.                 echo $resultStr;  
  39.             }else{  
  40.                 echo MESS;  
  41.             }   
  42.         }else {  
  43.             echo MESS;  
  44.             exit;  
  45.         }  
  46.     }  
  47.    
  48.     private function checkSignature()  
  49.     {  
  50.         $signature = $_GET["signature"];  
  51.         $timestamp = $_GET["timestamp"];  
  52.         $nonce = $_GET["nonce"];  
  53.         $token =TOKEN;  
  54.         $tmpArr = array($token$timestamp$nonce);  
  55.         sort($tmpArr);  
  56.         $tmpStr = implode( $tmpArr );  
  57.         $tmpStr = sha1( $tmpStr );  
  58.    
  59.         if$tmpStr == $signature ){  
  60.             return true;  
  61.         }else{  
  62.             return false;  
  63.         }  
  64.     }  
  65. }  
  66. ?> 

然后:设置回复接口,填好URL和Token(必须跟上面定义的Token一致),这个接口先要验证,成功之后再注释掉$wechatObj->valid(); 这行,同时去掉//$wechatObj->responseMsg();这行的注释.

消息接口就可以使用了,发个消息试试看吧?

分享到:
PHP中常用的缓存技术介绍 - php高级应用
PHP中常用的缓存技术介绍 数据缓存:这里所说的数据缓存是指数据库查询缓存,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓存文件中获得,代码如下:   页面缓存:每次访问...
Zend Framework中如何判断URL是否设置了...
Zend Framework中如何判断URL是否设置了转发 下面我来介绍一个Zend Framework中如何判断URL是否设置了转发,有需要学习的朋友可参考. 发送HTTP请求,代码如下: $client    = new Zend_Http_Client();  $client->setUri($url);  $client->setConfig(array('maxredirects...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……