第一范文网 - 专业文章范例文档资料分享平台

微信公众平台PHP开发基于地理位置的服务

来源:用户分享 时间:2025/9/5 18:43:42 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

微信公众平台开发小应用:用经纬度坐标位

置查询周围餐厅

// weixin.class.php

classWeixin { public $token = ''; //token

public $debug = false; //是否debug的状态标示,方便我们在调试的时候记录一些中间数据 public $setFlag = false; public $msgtype = 'text'; //('text','image','location') public $msg = array(); public function __construct($token,$debug) { $this->token = $token; $this->debug = $debug; } //获得用户发过来的消息(消息内容和消息类型) public function getMsg() { $postStr = $GLOBALS[\ if ($this->debug) { $this->write_log($postStr); } if (!empty($postStr)) { $this->msg = (array)simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $this->msgtype = strtolower($this->msg['MsgType']); } } //回复文本消息 public function makeText($text='') { $CreateTime = time(); $FuncFlag = $this->setFlag ?1 : 0;

$textTpl = \ msg['FromUserName']}]]> msg['ToUserName']}]]> {$CreateTime} %s \ returnsprintf($textTpl,$text,$FuncFlag); } //根据数组参数回复图文消息 public function makeNews($newsData=array()) { $CreateTime = time(); $FuncFlag = $this->setFlag ?1 : 0; $newTplHeader = \ msg['FromUserName']}]]> msg['ToUserName']}]]> {$CreateTime} %s\ $newTplItem = \ <![CDATA[%s]]> \ $newTplFoot = \ %s \ $Content = ''; $itemsCount = count($newsData['items']); $itemsCount = $itemsCount<10 ? $itemsCount : 10;//微信公众平台图文回复的消息一次最多10条 if ($itemsCount) { foreach ($newsData['items'] as $key => $item) { if ($key<=9) { $Content .= sprintf($newTplItem,$item['title'],$item['description'],$item['picurl'],$item['url']); } } }

$header = sprintf($newTplHeader,$newsData['content'],$itemsCount); $footer = sprintf($newTplFoot,$FuncFlag); return $header . $Content . $footer; }

public function reply($data) { if ($this->debug) { $this->write_log($data); } echo $data; }

public function valid() { if ($this->checkSignature()) { if( $_SERVER['REQUEST_METHOD']=='GET' ) { echo $_GET['echostr']; exit; } }else{ write_log('认证失败'); exit; } }

private function checkSignature() { $signature = $_GET[\ $timestamp = $_GET[\ $nonce = $_GET[\ $tmpArr = array($this->token, $timestamp, $nonce); sort($tmpArr); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; }else{ return false; } }

private function write_log($log){

//这里是你记录调试信息的地方请自行完善以便中间调试 } } ?>

// zhaofanguan.php

include_once('weixin.class.php');//引用刚定义的微信消息处理类 define(\define('DEBUG', true);

define('GMAP_API_KEY', \

$weixin = new Weixin(TOKEN,DEBUG);//实例化 $weixin->getMsg();

$type = $weixin->msgtype;//消息类型 $username = $weixin->msg['FromUserName'];//哪个用户给你发的消息,这个$username是微信加密之后的,但是每个用户都是一一对应的 if($type==='location') { $lat = $weixin->msg['Location_X']; $lng = $weixin->msg['Location_Y']; // Google Map API $url = \ \. $lng . \ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_REFERER, \ $body = curl_exec($ch); curl_close($ch); $json = json_decode($body); $results = (array)$json->results; $restaurants=\ foreach ($results as $result) { $restaurants= $result->name .\ } $reply = $weixin->makeText(“亲,您周围1000米的餐馆有:\ }

$weixin->reply($reply); ?>

微信公众平台PHP开发基于地理位置的服务.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c042fy0641a9pg7z7h9y2_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top