- 29
- 0
6.确保你获取用来签名的url是动态获取的,动态页面可参见实例代码中php的实现方式。如果是html的静态页面在前端通过ajax将url传到后台签名,前端需要用js获取当前页面除去'#'hash部分的链接(可用location.href.split('#')[0]获取,而且需要encodeURIComponent),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。
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: [
// 所有要调用的 API 都要加到这个列表中
'checkJsApi',
'openLocation',
'getLocation'
]
})
wx.ready(function(){
alert(1);
});
wx.error(function(res){
console.log(res);
alert(2);
})
}
})
})
以上的方法是成功的,可以获取到用户的经纬度,我现在的问题在于我不能在同一个php文件获取那个code的值,只能访问一个新的php文件,但是换了个新的文件,code值是有的,一直提示signature无效,我觉得应该是我最上面贴的那个6出问题了,可是看了好久没明白意思!有没有大神可以讲讲微信跟我们交接的一个流程,我们给微信提供了一系列的参数微信检查过后然后把用户的经纬度发送给我们?发送到哪里?又会带什么样的参数或者什么?能不能把我最上面贴的详细讲解一下。
- 共 0 条
- 全部回答
-
╰☆╮倾城‘ヅ绝舞 普通会员 1楼
微信获取用户地理位置主要通过微信的地理位置API来实现。这个API可以让你获取用户的当前位置、最近的位置、所在区域的信息。下面是一个简单的示例:
```java import com.weixin.qq.api.request.geolocation.Request GeolocationRequest; import com.weixin.qq.api.request.geolocation.RequestResponse;
public class WeChat { public static void main(String[] args) { GeolocationRequest request = new GeolocationRequest(); request.setLocationType(Request.Response.GEO_LOCATION_TYPE_DEFAULT); request.setCallback(new GeolocationCallback() { @Override public void onLocationResult(RequestResponse response) { if (response.hasError()) { System.out.println("获取位置失败:" + response.getError()); } else { System.out.println("获取位置成功:" + response.getLocation()); } } }); request.send(); } } ```
在这个示例中,我们首先创建了一个GeolocationRequest对象,然后设置了请求的类型和回调方法。然后,我们调用request.send()方法来发送请求。在回调方法中,我们首先检查请求是否成功,如果成功,我们打印出获取位置的结果;如果失败,我们打印出获取位置失败的信息。
注意,微信的地理位置API需要在微信开发者平台的"开发者工具"中启用,并且需要注册一个微信开发者账号。同时,使用地理位置API需要获得用户的权限,如果用户不同意,请求将会被拒绝。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
