PHP微信公众号开发 获取用户收货地址
super
2018-12-04 18:30
3595
以ThinkPHP3.2项目为例:
php code:
$appid = "xxx";//appid $secret= "xxx";//secret $sdk = new \Jssdk\Jssdk($appid,$secret); $sdk = $sdk->getSignPackage(); $this->assign('sdk', $sdk); //jssdk下载地址:https://pan.baidu.com/s/1BmATDTQgoUXuP8NE1n1rTQ //下载解压后把文件夹放到ThinkPHP/Library/ 目录下
html code:
<li class="footer_nav_1" onclick="getWeChatAddress();"> <a href="javascript:void(0); " class=""> <i class="icon icon-wechat"></i> <p>微信地址</p> </a> </li>
javascript code:
//获取微信收货地址 function getWeChatAddress() { wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '{$sdk.appId}', // 必填,公众号的唯一标识 timestamp: '{$sdk.timestamp}', // 必填,生成签名的时间戳 nonceStr: '{$sdk.nonceStr}', // 必填,生成签名的随机串 signature: '{$sdk.signature}',// 必填,签名 jsApiList: [ 'checkJsApi', 'onMenuShareTimeline', 'onMenuShareAppMessage', 'openAddress' ] // 必填,需要使用的JS接口列表 }); wx.ready(function () { wx.openAddress({ success: function (res) { //alert(JSON.stringify(res));//查看返回数据 if(res.errMsg == "openAddress:ok"){ var name = res.userName; //姓名 var phone = res.telNumber; //填写的手机号码 var pro = res.provinceName;//省名称 var city = res.cityName; //城市名称 var county= res.countryName; //区/县名称 var detail= res.detailInfo; //详细地址 // ... //添加地址操作... } else { alert("地址获取失败,请稍后重试!"); } } }); }); }
开发时可以吧wx.config里面的debug打开,方便调试
报错:
errMsg:config:invaild signatrue
在后台打印$sdk这个数组,可以使用微信 JS 接口签名校验工具与自己生成的数据对比
如果写的没毛病,点击地址之后会询问:是否允许获取地址信息?
点击某个地址,会跳转回图一页面,然后对数据进行操作
rongshupeng1024#qq.com(#换成@)
0 条讨论