描述:
用戶掃描公眾號二維碼,公眾號獲取用戶的定位信息
此功能需要使用微信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 \WeChat\Script($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);
效果圖:

