微信连接不了服务器10195,微信收货地址共享(openAddress)的坑

就因为这个坑,折腾了将近半天,查了很多资料,看到很多骂的,在这里,我也想骂了,微信开发文档太TMD坑爹了,不用的接口要么去掉,要么跳转到新的啊,干嘛新的旧的都放那,而且大部分链过去都是旧的,一行一行的看代码,按照文档的要求写的,结果死活不行,一直报错:editAddress:fail_auth_error,最后偶然发现是接口名称换过了,获取的方式也换过了,真是醉了。。。。。。

废话不说了,下边是最新的代码:

PHP和分享一样,去取一下签名的内容:

$addr = new WechatSign("wx69397d6a64792c6c", "946d8098faf7bad2c0b005de7aa82d2d");

$addrSign = $addr->GetSignPackage();

$this->assign('addrSign', $addrSign);

我这边是把签名那些方法放到一个类里面了,官方那有,这里就不放了。

HTML要先引入最新的js:

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);

}});

}

我这里是把调取地址放在一个方法里了,如果不需要,直接放在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);

}

});

但是已经不支持了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值