描述:
用户扫描公众号二维码,公众号获取用户的定位信息
此功能需要使用微信JS-SDK来进行功能的实现,此处附上官网文档地址:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
实现流程:(官方文档说明)
流程 详解:
页面js代码
1.首先在你要获取定位的html中引入js文件
<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
2.config接口注入权限参数
var appIdd= '{$signPackage["appId"]}'; var timestampd='{$signPackage["timestamp"]}'; var nonceStrd='{$signPackage["nonceStr"]}'; var signatured='{$signPackage["signature"]}'; var mid = "{$mid}"; wx.config({ debug: true, appId:appIdd, timestamp:timestampd, nonceStr:nonceStrd , signature:signatured, jsApiList: [ // 所有要调用的 API 都要加到这个列表中 'getLocation', ] });
3.通过ready接口处理成功/失败验证
wx.ready(function () { wx.checkJsApi({ jsApiList: [ 'checkJsApi', 'openLocation', 'getLocation' ], success: function (res) { if (res.checkResult.getLocation == false) { alert('你的微信版本太低,不支持微信JS接口,请升级到最新的微信版本!'); return; } } }); wx.error(function(res){ alert("接口调取失败") });
4.获取地理位置信息
wx.getLocation({ success: function (res) { $.ajax({ url:'/response/order/getMachineLocation', type: 'POST', data:{ result:res, mid:mid } }); // alert(JSON.stringify(res)); }, cancel: function (res) { alert('用户拒绝授权获取地理位置'); } });
PHP代码
说明:获取签名包数据是利用的微信开发者包集成环境来实现的
1.导入开发者工具包,获取配置文件信息,主要是获取的appid
import('include',EXTEND_PATH.'WeChatDeveloper/'); $config = Config::get('wxconfig'); // $domain_name = Config::get('domain_name'); $domain_name=request()->url(); $JsApiSign=new WeChatScript($config); $data=$JsApiSign->getJsSign($domain_name);
注意 URL 一定要动态获取
2.assign数据
$signPackage['appId']=$data['appId']; $signPackage['timestamp']=$data['timestamp']; $signPackage['nonceStr']=$data['nonceStr']; $signPackage['signature']=$data['signature']; $this->assign('signPackage',$signPackage);
效果图: