微信公众开发之获取周边酒店信息
关注微信公众之后发送回复地理位置信息,即可回复周边附近的酒店信息列表,下面我就来给各位介绍利用php是怎么实现这个功能,希望全子对大家有帮助.代码如下:
<?php //将提交过来的信息接收 $signature = $_GET [ 'signature' ]; $timestamp = $_GET [ 'timestamp' ]; $nonce = $_GET [ 'nonce' ]; $echostr = $_GET [ 'echostr' ]; $token = "yanjiadong" ; //判断接入网站 //进行字典排序 $arr = array ( $token , $timestamp , $nonce ); sort( $arr ); //完成字符串的拼接和sha1加密 $result = sha1(join( $arr )); //判断生成的字符串和$signature是否相等,如果相等,直接输出$echostr,这样网站接入成功 if ( $result == $signature ){ echo $echostr ; } //接收微信公众账号接收到的信息 $poststr = $GLOBALS [ "HTTP_RAW_POST_DATA" ]; $xmlObj = simplexml_load_string( $poststr , 'SimpleXMLElement' ,LIBXML_NOCDATA); $ToUserName = $xmlObj ->ToUserName; $FromUserName = $xmlObj ->FromUserName; $CreateTime = $xmlObj ->CreateTime; $MsgType = $xmlObj ->MsgType; $Content = $xmlObj ->Content; if ( $MsgType == 'location' ){ $Location_X = $xmlObj ->Location_X; $Location_Y = $xmlObj ->Location_Y; $Scale = $xmlObj ->Scale; $Label = $xmlObj ->Label; $urlstr = "http://api.map.baidu测试数据/place/v2/search?&query=酒店&location=" . $Location_X . "," . $Location_Y . "&radius=5000&output=json&ak=DESY8unmZnUlLB0mlowjuiRr" ; //此处ak参数需要个人的百度开发序列号,自己去百度申请下就好了 $jsonstr = file_get_contents ( $urlstr ); $json = json_decode( $jsonstr ,true); $pic_640 = "http://api.map.baidu测试数据/staticimage?width=640&height=320¢er=" . $Location_Y . "," . $Location_X . "&zoom=15&markers=" . $Location_Y . "," . $Location_X . "&markerStyles=l," ; $pic_80 = "http://api.map.baidu测试数据/staticimage?width=80&height=80¢er=" . $Location_Y . "," . $Location_X . "&zoom=15&markers=" . $Location_Y . "," . $Location_X . "&markerStyles=l," ; $p_640 = file_get_contents ( $pic_640 ); file_put_contents ( './images/640_' . $FromUserName . ".png" , $p_640 ); $p_80 = file_get_contents ( $pic_80 ); file_put_contents ( './images/80_' . $FromUserName . ".png" , $p_80 ); echo pic_send( $json [ 'results' ]); } function pic_send( $arr ){ global $ToUserName , $FromUserName ; $str = "<xml> <ToUserName><![CDATA[ ".$FromUserName." ]]></ToUserName> <FromUserName><![CDATA[ ".$ToUserName." ]]></FromUserName> <CreateTime> ".time()." </CreateTime> <MsgType><![CDATA[news]]></MsgType> <ArticleCount> ".count($arr)." </ArticleCount> <Articles>"; foreach ( $arr as $k => $v ){ if ( $k ==0){ $picurl = "http://yanjiadong.net/weixin/images/640_" . $FromUserName . ".png" ; } else { $picurl = "http://yanjiadong.net/weixin/images/80_" . $FromUserName . ".png" ; } $str .=" <item> <Title><![CDATA[ ".$v['name']." 地址: ".$v['address']." 电话: ".$v['telephone']." ]]></Title> <Description><![CDATA[ ".$v['name']." 地址: ".$v['address']." 电话: ".$v['telephone']." ]]></Description> <PicUrl><![CDATA[ ".$picurl." ]]></PicUrl> <Url><![CDATA[http: //api.map.baidu测试数据/place/detail?uid=".$v['uid']."&output=html&src=".$v['name']."&output=html]]></Url> </item>"; //开源代码phpfensi测试数据 } $str .= "</Articles></xml>" ; return $str ; } ?>查看更多关于微信公众开发之获取周边酒店信息 - php高级应用的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did30397