鍍金池/ 問答/PHP  HTML/ 微信獲取用戶地理位置

微信獲取用戶地理位置

6.確保你獲取用來簽名的url是動(dòng)態(tài)獲取的,動(dòng)態(tài)頁面可參見實(shí)例代碼中php的實(shí)現(xiàn)方式。如果是html的靜態(tài)頁面在前端通過ajax將url傳到后臺(tái)簽名,前端需要用js獲取當(dāng)前頁面除去'#'hash部分的鏈接(可用location.href.split('#')[0]獲取,而且需要encodeURIComponent),因?yàn)轫撁嬉坏┓窒?,微信客戶端?huì)在你的鏈接末尾加入其它參數(shù),如果不是動(dòng)態(tài)獲取當(dāng)前鏈接,將導(dǎo)致分享后的頁面簽名失敗。

php文件test.php
<?php
require_once '../include/common.inc.php';
require_once './jssdk.php';

if($act == 'ajax'){

  $jsdk = new JSSDK($weixin_appID,$weixin_appSecret);

  $code = $jsdk->getSignPackage();
  echo json_encode($code);
  exit;

}
include template('test.htm',_TPLWeixinPath_);
html文件test.html
<!DOCTYPE html>
<html lang="en">
<head>

<meta charset="UTF-8">
<title>獲取地理位置</title>
<script src="./js/jquery-2.1.4.js"></script>
<script src="./js/test.js"></script>
<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>

</head>
<body>

<div style="width:100px;height:100px;border:1px solid green;background:pink;" id="sun"></div>

</body>
</html>
js文件test.js
//alert(1);
$(document).on('click', '#sun', function() {

    $.ajax({
        url: 'test.php',
        data:{ act:'ajax'},
        type:'post',
        success:function(res){
                //console.log(res);
                var data = JSON.parse(res);
                wx.config({
                    debug: true,
                    appId: data.appId,
                    timestamp: data.timestamp,
                    nonceStr: data.nonceStr,
                    signature: data.signature,
                    jsApiList: [
                        // 所有要調(diào)用的 API 都要加到這個(gè)列表中
                        'checkJsApi',
                        'openLocation',
                        'getLocation'
                      ]
                })
                wx.ready(function(){
                    alert(1); 
                });
                wx.error(function(res){
                    console.log(res);
                    alert(2);
                })
        }
    })
})

以上的方法是成功的,可以獲取到用戶的經(jīng)緯度,我現(xiàn)在的問題在于我不能在同一個(gè)php文件獲取那個(gè)code的值,只能訪問一個(gè)新的php文件,但是換了個(gè)新的文件,code值是有的,一直提示signature無效,我覺得應(yīng)該是我最上面貼的那個(gè)6出問題了,可是看了好久沒明白意思!有沒有大神可以講講微信跟我們交接的一個(gè)流程,我們給微信提供了一系列的參數(shù)微信檢查過后然后把用戶的經(jīng)緯度發(fā)送給我們?發(fā)送到哪里?又會(huì)帶什么樣的參數(shù)或者什么?能不能把我最上面貼的詳細(xì)講解一下。

回答
編輯回答
蝶戀花

或者有沒有大佬知道生成signature參數(shù)當(dāng)中的url能不能加參數(shù)的

2018年6月24日 17:45