微信天气接口查询
2015-06-12 20:13
507 查看
<?php/* http://fanyi.youdao.com/openapi.do?keyfrom=weifan&key=791593512&type=data&doctype=<doctype>&version=1.1&q=要翻译的文本 方倍工作室 http://www.cnblogs.com/txw1958/ CopyRight 2013 www.doucube.com All Rights Reserved*/traceHttp();define("TOKEN", "weixin");$wechatObj = new wechatCallbackapiTest();if (isset($_GET['echostr'])) {$wechatObj->valid();}else{$wechatObj->responseMsg();}class wechatCallbackapiTest{public function valid(){$echoStr = $_GET["echostr"];if($this->checkSignature()){echo $echoStr;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;}}public function responseMsg(){$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//simplexml_load_string() 函数把 XML 字符串载入对象中。if (!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>";//sprintf() 函数把格式化的字符串写入一个变量中//strstr() 函数搜索一个字符串在另一个字符串中的第一次出现if(!empty($keyword)){$url="http://api.k780.com:88/?app=weather.future&appkey=14323&sign=0111aa8a973785f0f0926aff75f5af52&format=json&weaid=".$keyword."";$str = file_get_contents($url);$data = json_decode($str);$weather = "";$weather .="城市:".$data->result[0]->citynm." 星期:".$data->result[0]->week." 温度:".$data->result[0]->temperature." 天气:".$data->result[0]->weather." 日期:".$data->result[0]->days."";$msgType = "text";$contentStr = $weather;$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);echo $resultStr;}}else{$msgType = "text";$contentStr = $keyword."zzzz";$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);echo $resultStr;exit;}}}function traceHttp(){//“REMOTE_ADDR”:正在浏览当前页面用户的 IP 地址。logger("\n\nREMOTE_ADDR:".$_SERVER["REMOTE_ADDR"].(strstr($_SERVER["REMOTE_ADDR"],'101.226')? " FROM WeiXin": "Unknown IP"));logger("QUERY_STRING:".$_SERVER["QUERY_STRING"]);}function logger($log_content){if(isset($_SERVER['HTTP_APPNAME'])){ //SAEsae_set_display_errors(false); //sae_debug($log_content); //sae_debug是保存到日志里面, 不会保存到storage里面.sae_set_display_errors(true);}else{ //LOCAL$max_size = 500000;$log_filename = "weixinlog.xml";if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);}file_put_contents($log_filename, date('Y-m-d H:i:s').$log_content."\r\n", FILE_APPEND);}}?>
相关文章推荐
- JS判断页面是否是在微信浏览器中打开
- [056] 微信公众平台开发视频教程全面来袭
- [053] 微信公众平台开发教程第23篇-SAE不支持XStream框架的解决方案
- [052] 微信公众平台开发视频公开课第2讲-自定义菜单开发讲解
- [051] 微信公众平台开发教程第22篇-如何保证access_token长期有效
- [050] 微信公众平台开发入门视频教程已发布
- [049] 微信公众平台开发视频公开课第1讲-基础入门
- [048] 参与CSDN社区问答活动“基于Java的微信公众平台开发”赢签名赠书
- [047] 即将陆续推出微信公众平台开发视频教程
- [046] 《微信公众平台应用开发:方法、技巧与案例》火热预售中...
- 微信JS接口 分享到朋友圈 分享给朋友 分享到QQ 拍照或从手机相册中选图 识别音频并返回识别结果 使用微信内置地图查看位置
- 微信公众平台支付功能开通流程
- Android平台第三方应用分享到微信开发
- 微信的redirect_uri参数错误原因分析
- Android 微信登录昵称乱码问题,及获取微信用户信息
- FIGlet -- 有意思的小程序
- 微信发红包代码,解决中文乱码问题
- 微信公众平台-超级大赛问题汇总1
- 微信支付官方.net版之坑你没商量
- Android: 微信分享