用laravel微信公众号开发之调取第三方接口

编程入门 行业动态 更新时间:2024-10-23 17:27:05

用laravel微信公众号开发之调取<a href=https://www.elefans.com/category/jswz/34/1770258.html style=第三方接口"/>

用laravel微信公众号开发之调取第三方接口

其实用laravel来开发的话其实也挺简单的  我之前已经写过一篇关于微信网页授权获取用户基本信息的博客 所以就不多说关于授权的问题了 如果想知道关于授权问题的话 可以去看我之前的博客 

懒得写废话了 直接上代码吧还是    用laravel开发微信公众号的方法的话 可以直接放在public下 然后输入相应的目录名字即可 也可以复制微信给你提供好的api进行封装方法

这个地方记得要改正一下   下面是自己写的方法

<?php
/*** wechat php test*///define your token
define("TOKEN", "feiji");
$wechatObj = new wechatCallbackapiTest();
if(!isset($_GET['echostr'])){
$wechatObj->responseMsg();
}else{
$wechatObj->valid();
}
//$wechatObj->valid();class wechatCallbackapiTest
{public function valid(){$echoStr = $_GET["echostr"];//valid signature , optionif($this->checkSignature()){echo $echoStr;exit;}}public function responseMsg(){//get post data, May be due to the different environments$postStr = file_get_contents('php://input');    //全局变量的信息    可以接收//extract post dataif (!empty($postStr)){$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);$RX_TYPE = trim($postObj->MsgType);switch($RX_TYPE){case "text":$resultStr = $this->handleText($postObj);break;case "event":$resultStr = $this->handleEvent($postObj);break;default:$resultStr = "Unknow msg type: ".$RX_TYPE;break;}echo $resultStr;}else {echo "";exit;}}public function handleText($postObj){$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( $keyword )){// $msgType = "text";//if($keyword=="你好"){//   $contentStr = "hello";// }elseif($keyword=="河南"){//  $contentStr = "好人不多,全在河南";// }elseif($keyword=="飞机"){//    $contentStr = "感谢您关注【飞机平台】微信号:FeiJi98622";//  }else{//     $contentStr = "感恩有你,一路前行";//  }$msgType = "text";if($keyword=="博客"){$contentStr = "飞机的博客地址是 ";}elseif($keyword=="搜索"){$contentStr = "搜索的地址是 ";}elseif($keyword=="天气"){$url = "=北京&key=99ae8b89d4a14c0881c2ac64c831cdd6"; $send_info = file_get_contents($url);$c = json_decode($send_info,true);$contentStr = "【".$c['result']['today']['city']."天气预报】\n"." ".$c['result']['today']['date_y']."时发布"."\n\n实时天气\n".$c['result']['today']['weather'].$c['result']['today']['temperature'].$c['result']['today']['wind']."\n\n温馨提示:".$c['result']['today']['dressing_advice']."\n\n明天\n".$c['result']['future'][1]['temperature']." \n\n后天".$c['result']['future'][2]['temperature']."\n";}elseif($keyword=="经典语录"){$url="=f46592cf388447bcb451043f10698d5d";$send_info = file_get_contents($url);$json = json_decode($send_info,true);$contentStr=$json['result'];}else{$url = "=$keyword&address=&key=6b2748d2785f4e928fbc141939c3e858";$send_info = file_get_contents($url);$json = json_decode($send_info,true);$contentStr =$json['result']['text'];file_put_contents("haoyun.txt",$contentStr);}$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);echo $resultStr;}else{echo "Input something...";}}public function handleEvent($object){$contentStr = "";switch ($object->Event){case "subscribe":$contentStr = "感谢您关注【1803A】团队,本团队最帅男人微信号为:FeiJi98622"."\n"."接下来可以欣赏一下我所做的知识点。"."\n"."目前平台功能如下"."\n"."【1】查看学习知识点:博客"."\n"."【2】百度知识请输入:搜索"."\n"."【3】查看天气请输入:天气";//$contentStr = "感谢您关注【1803A班级】"."\n"."微信号:FeiJi98622"."\n"."伟大的1803A欢迎您的浏览,接下来请欣赏飞机做的知识点。"."\n"."目前平台功能如下:"."\n"."【1】 查学习知识点:博客"."\n"."【2】 百度知识请输入,如输入:搜索"."\n"."【3】 翻译,如输入:翻译I love you"."\n"."【4】 北京信息查询,如输入:苏州观前街"."\n"."更多内容,敬请期待...";break;default :$contentStr = "Unknow Event: ".$object->Event;break;}$resultStr = $this->responseText($object, $contentStr);return $resultStr;}public function responseText($object, $content, $flag=0){$textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>%d</FuncFlag></xml>";$resultStr = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content, $flag);return $resultStr;}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;}}
}?>

 

更多推荐

用laravel微信公众号开发之调取第三方接口

本文发布于:2024-03-10 14:44:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1728257.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:第三方   公众   接口   laravel

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!