php微信公众号开发之二级菜单
author:一佰互联 2019-04-25   click:156

本文实例为大家分享了php微信公众号二级菜单的具体代码,供大家参考,具体内容如下

核心代码:

$postObj = simplexml_load_string($postStr, "SimpleXMLElement", LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $MsgType=$postObj->MsgType; $keyword = trim($postObj->Content); $time = time(); $textTpl = "<xml>    <ToUserName><![CDATA[%s]]></ToUserName>     <FromUserName><![CDATA[%s]]></FromUserName>     <CreateTime>%s</CreateTime>      <MsgType><![CDATA[text]]></MsgType>      <Content>%s</Content>     <FuncFlag>0</FuncFlag>    </xml>";       //用 户 名 : $user   //密  码 : $pwd   //主库域名 : $host   //从库域名 : SAE_MYSQL_HOST_S   //端  口 : $port   //数据库名 : $dbname     $dbname = "app_dq095";     $host = "w.rdc.sae.sina.com.cn";     $port = "3306";     $user = "4k514n103z";     $pwd = "2402314li2j1i5im1xy2xizj5y332w2x41k2z203";     /*接着调用mysql_connect()连接服务器*/     // 连主库     $db = mysql_connect($host,$user,$pwd);     if(!$db){      die("Connect Server Failed: " . mysql_error($db));     }     /*连接成功后立即调用mysql_select_db()选中需要连接的数据库*/     if (!mysql_select_db($dbname)) {      die("Select Database Failed: " . mysql_error($db));     }      mysql_query("set names utf-8",$db);      /*至此连接已完全建立,就可对当前数据库进行相应的操作了*/     /*!!!注意,无法再通过本次连接调用mysql_select_db来切换到其它数据库了!!!*/     /* 需要再连接其它数据库,请再使用mysql_connect+mysql_select_db启动另一个连接*/     /**      * 接下来就可以使用其它标准php mysql函数操作进行数据库操作      */    if($keyword=="天气")    {     $content="请输入地区";     $sql="INSERT INTO `weather`(`id`,`user`,`keyword`) VALUES (NULL,"{$fromUsername}","{$keyword}")";     mysql_query($sql);     }    else    {     $sql="SELECT `keyword` FROM `weather` WHERE `user`= "" . $fromUsername . """;     $query=mysql_query($sql);     $rs=mysql_fetch_array($query);     $c= $rs["keyword"];     echo $c;     if($c=="天气")     {      $url="http://api.map.baidu.com/telematics/v2/weather?location={$keyword}&ak=1a3cde429f38434f1811a75e1a90310c";       $fa=file_get_contents($url);       $f=simplexml_load_string($fa);       $city=$f->currentCity;       $da1=$f->results->result[0]->date;       $da2=$f->results->result[1]->date;       $da3=$f->results->result[2]->date;         $w1=$f->results->result[0]->weather;       $w2=$f->results->result[1]->weather;       $w3=$f->results->result[2]->weather;         $p1=$f->results->result[0]->wind;       $p2=$f->results->result[1]->wind;       $p3=$f->results->result[2]->wind;       $q1=$f->results->result[0]->temperature;       $q2=$f->results->result[1]->temperature;       $q3=$f->results->result[2]->temperature;        $d1=$city.$da1.$w1.$p1.$q1;       $d2=$city.$da2.$w2.$p2.$q2;       $d3=$city.$da3.$w3.$p3.$q3;       $content=$d1.$d2.$d3;       if (empty($content))       {        $content="你输入的地区有误";}       }   else{  $content="请先输入天气";   }  }         $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time,$content);echo $resultStr;

index.php 整体代码如下:

<?php/** * wechat php test *///define your tokendefine("TOKEN", "weixin");$wechatObj = new wechatCallbackapiTest();$wechatObj->responseMsg();class wechatCallbackapiTest{ public function valid() {  $echoStr = $_GET["echostr"];  //valid signature , option  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"];  //extract post data  if (!empty($postStr)){    $postObj = simplexml_load_string($postStr, "SimpleXMLElement", LIBXML_NOCDATA);    $fromUsername = $postObj->FromUserName;    $toUsername = $postObj->ToUserName;    $MsgType=$postObj->MsgType;    $keyword = trim($postObj->Content);    $time = time();    $textTpl = "<xml>       <ToUserName><![CDATA[%s]]></ToUserName>       <FromUserName><![CDATA[%s]]></FromUserName>       <CreateTime>%s</CreateTime>        <MsgType><![CDATA[text]]></MsgType>        <Content>%s</Content>        <FuncFlag>0</FuncFlag>       </xml>";         //用 户 名 : $user     //密  码 : $pwd     //主库域名 : $host     //从库域名 : SAE_MYSQL_HOST_S     //端  口 : $port     //数据库名 : $dbname     $dbname = "app_dq095";     $host = "w.rdc.sae.sina.com.cn";     $port = "3306";     $user = "4k514n103z";     $pwd = "2402314li2j1i5im1xy2xizj5y332w2x41k2z203";     /*接着调用mysql_connect()连接服务器*/     // 连主库     $db = mysql_connect($host,$user,$pwd);     if(!$db){      die("Connect Server Failed: " . mysql_error($db));     }     /*连接成功后立即调用mysql_select_db()选中需要连接的数据库*/     if (!mysql_select_db($dbname)) {      die("Select Database Failed: " . mysql_error($db));     }      mysql_query("set names utf-8",$db);      /*至此连接已完全建立,就可对当前数据库进行相应的操作了*/     /*!!!注意,无法再通过本次连接调用mysql_select_db来切换到其它数据库了!!!*/     /* 需要再连接其它数据库,请再使用mysql_connect+mysql_select_db启动另一个连接*/     /**      * 接下来就可以使用其它标准php mysql函数操作进行数据库操作      */    if($keyword=="天气")    {     $content="请输入地区";     $sql="INSERT INTO `weather`(`id`,`user`,`keyword`) VALUES (NULL,"{$fromUsername}","{$keyword}")";     mysql_query($sql);     }    else    {     $sql="SELECT `keyword` FROM `weather` WHERE `user`= "" . $fromUsername . """;     $query=mysql_query($sql);     $rs=mysql_fetch_array($query);     $c= $rs["keyword"];     echo $c;     if($c=="天气")     {      $url="http://api.map.baidu.com/telematics/v2/weather?location={$keyword}&ak=1a3cde429f38434f1811a75e1a90310c";       $fa=file_get_contents($url);       $f=simplexml_load_string($fa);       $city=$f->currentCity;       $da1=$f->results->result[0]->date;       $da2=$f->results->result[1]->date;       $da3=$f->results->result[2]->date;         $w1=$f->results->result[0]->weather;       $w2=$f->results->result[1]->weather;       $w3=$f->results->result[2]->weather;         $p1=$f->results->result[0]->wind;       $p2=$f->results->result[1]->wind;       $p3=$f->results->result[2]->wind;       $q1=$f->results->result[0]->temperature;       $q2=$f->results->result[1]->temperature;       $q3=$f->results->result[2]->temperature;        $d1=$city.$da1.$w1.$p1.$q1;       $d2=$city.$da2.$w2.$p2.$q2;       $d3=$city.$da3.$w3.$p3.$q3;       $content=$d1.$d2.$d3;       if (empty($content))       {        $content="你输入的地区有误";}       }     else{      $content="请先输入天气";     }     }            $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time,$content);    echo $resultStr;  }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;  } }}?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持网页设计。