就因为这个坑,折腾了将近半天,查了很多资料,看到很多骂的,在这里,我也想骂了,微信开发文档太TMD坑爹了,不用的接口要么去掉,要么跳转到新的啊,干嘛新的旧的都放那,而且大部分链过去都是旧的,一行一行的看代码,按照文档的要求写的,结果死活不行,一直报错:editAddress:fail_auth_error,最后偶然发现是接口名称换过了,获取的方式也换过了,真是醉了。。。。。。
废话不说了,下边是最新的代码:
PHP和分享一样,去取一下签名的内容:
$addr = new WechatSign("wx69397d6a64792c6c", "946d8098faf7bad2c0b005de7aa82d2d");
$addrSign = $addr->GetSignPackage();
$this->assign('addrSign', $addrSign);
我这边是把签名那些方法放到一个类里面了,官方那有,这里就不放了。
HTML要先引入最新的js:
<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.1.0.js"></script>
<script type="text/javascript">
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: "{$addrSign['appId']}", // 必填,公众号的唯一标识
timestamp: "{$addrSign['timestamp']}", // 必填,生成签名的时间戳
nonceStr: "{$addrSign['nonceStr']}", // 必填,生成签名的随机串
signature: "{$addrSign['signature']}",// 必填,签名,见附录1
jsApiList: ['checkJsApi','openAddress'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
wx.ready(function () {
});
function getaddr() {
wx.openAddress({
success: function (res) {
// 用户成功拉出地址
alert(JSON.stringify(res));
},
cancel: function (errMsg) {
// 用户取消拉出地址
//alert(errMsg);
}});
}
</script>
我这里是把调取地址放在一个方法里了,如果不需要,直接放在wx.ready(function () {
});里即可。
然后就没有然后了,到此就好了。点击的时候会跳转到地址的界面。
注意:此功能仅限在微信浏览器里使用,别的浏览器不能用的哦!还有就是这个功能只能在手机上测,web开发者工具里会提示:没有此SDK或暂不支持此SDK模拟
以前的写法是这样的:
WeixinJSBridge.invoke('editAddress', {
"appId": "{$addrSign['appId']}",
"scope": "jsapi_address",
"signType": "sha1",
"addrSign": "{$addrSign['addrSign']}",
"timeStamp": "{$addrSign['timeStamp']}",
"nonceStr": "{$addrSign['nonceStr']}",
}, function (res) {
if (res.err_msg == 'edit_address:ok') {
$.cookie('addr', JSON.stringify(res));
} else {
alert(res.err_msg);
}
});
但是已经不支持了。
vue2 Implicit conversion from float int loses precision php8Implicit Mysql8新增用户,mysql8配置权限,mysql8配置,mysql8配置文件 Linux命令,scp,scp命令,Linux复制 git commit git add centos git 搭建FTP,Linux FTP,禁止FTP登录ssh 上传文件,阿里云OSS上传,文件上传到OSS,OSS文件上传,OSS上传 微信支付,微信支付V3,PHP微信支付,微信nativePay支付,微信jsapi支付 微信支付,微信支付V3,PHP微信支付 bootstrap4 modal, lavarel The subversion command line tools are no longer provided by Xcode. 银联支付,tp5.1银联支付 支付宝即时到账,PHP支付宝 system libzip must be upgraded to version >= 0.11 CMake 3.0.2 or higher is required