微信开发之模式,简单能运行的例子
凌雪 2018-12-17 来源 :网络 阅读 827 评论 0

摘要:本文将带你了解微信开发模式,简单能运行的例子,希望本文对大家学微信有所帮助。

本文将带你了解微信开发模式,简单能运行的例子,希望本文对大家学微信有所帮助。


responseMsg();    //执行wechatCallbackapiTest类下的responseMsg()方法}else{    $wechatObj->valid();     //执行wechatCallbackapiTest类下的valid()方法}class wechatCallbackapiTest  //创建wechatCallbackapiTest类{    public function valid()  //创建一个名为valid()的公共函数方法    {          $echoStr = $_GET["echostr"]; //收集get数据(随机字符串)        //valid signature , option        if($this->checkSignature()){  //判断checkSignature()自定义函数结果(验证微信服务器)            echo $echoStr;   //为真则输出结果(随机字符串)            exit;        }      }    public function   responseMsg()    {        //get post data, May be due to the   different environments        $postStr   = $GLOBALS["HTTP_RAW_POST_DATA"];//获取post数据          //extract post data        if (!empty($postStr)){                                  $postObj =   simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);                $fromUsername =   $postObj->FromUserName;                  $toUsername = $postObj->ToUserName;                $type =   $postObj->MsgType;                  $customrevent = $postObj->Event;                $latitude  = $postObj->Location_X;                $longitude =   $postObj->Location_Y;                  $keyword = trim($postObj->Content);                $time = time();                $textTpl = "                                                                                       %s                                                                                       0                             ";                             switch   ($type)            {   case "event";                if   ($customrevent=="subscribe")                    {$contentStr =   "亲,你终于来啦~~感谢关注号!";}                  break;                case   "image";                  $contentStr = "你的图片很棒!";                break;                case "voice":                $contentStr =   "我不知道你在说什么!还是发送文字吧!\n";                break;                case "video";                $contentStr =   "你的视频很棒!";                  break;                case   "location";                           $data =   file_get_contents("//api.map.baidu.com/geoconv/v1/?coords={$latitude},{$longitude}&output=xml&from=3&to=5&ak=你的ak");                  $array =   simplexml_load_string($data);                     $lat=$array->result->point[0]->x;                    $log=$array->result->point[0]->y;             // 腾讯地图坐标转换为百度地图坐标              $textTpl =   "                                                                                        %s                                                           4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   0                             ";                           $resultStr =   sprintf($textTpl, $fromUsername, $toUsername, $time, $url);                    echo $resultStr;                break;                case "link" ;                $contentStr =   "你的链接有病毒吧!";                  break;                              default;            $contentStr   ="此项功能尚未开发";                  }                          if($keyword=="天气"){                               //   天气api接口  //developer.baidu.com/map/carapi-7.htm                   $weatherurl="//api.map.baidu.com/telematics/v2/weather?location=武汉&ak=你的ak";                 $apistr=file_get_contents($weatherurl);                   $apiobj=simplexml_load_string($apistr);                $contentStr   ="【武汉天气预报】\n{$apiobj->results->result[0]->date}\n天气    {$apiobj->results->result[0]->weather}\n风力    {$apiobj->results->result[0]->wind}\n温度  {$apiobj->results->result[0]->temperature}                  \n明天{$apiobj->results->result[1]->date}\n{$apiobj->results->result[1]->weather}    {$apiobj->results->result[1]->wind}    {$apiobj->results->result[1]->temperature}                      \n后天{$apiobj->results->result[2]->date}\n{$apiobj->results->result[2]->weather}    {$apiobj->results->result[2]->wind}    {$apiobj->results->result[2]->temperature}                      \n{$apiobj->results->result[3]->date}\n{$apiobj->results->result[3]->weather}    {$apiobj->results->result[3]->wind}    {$apiobj->results->result[3]->temperature}";                }                 if($keyword=="联系方式"){                      $msgType="text";                    $contentStr =   "地址:";                      $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time,   $msgType, $contentStr);                         echo $resultStr;                      }                                                     if($keyword=="图文消息"){                                          $textTpl = "                                                                                       %s                                                           3                                                                                                                                                                                                                                                                                                                                                                                                                                      c#rd]]-->                                                                                       0                             ";              // 以上标红的地方都需要自己修改                    $resultStr =   sprintf($textTpl, $fromUsername, $toUsername, $time,$url);                        echo $resultStr;                    }                   if(keyword=="历史消息"){                          $url =   "历史消息网址";                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time,$url);                        echo $resultStr;                          }                                                                      $msgType="text";                $resultStr =   sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType,   $contentStr);                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;        }      }}

   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之微信频道!


本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程