PHP微信公众号开发 获取用户收货地址
super
2018-12-04 18:30
以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 条讨论
