早睡早起,方能养生!
Sleep early rise early, way to keep healthy!

PHP微信公众号开发 获取用户收货地址

super
2018-12-04 18:30
views 1288

以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>

image.png


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 接口签名校验工具与自己生成的数据对比


如果写的没毛病,点击地址之后会询问:是否允许获取地址信息?

image.png

点击某个地址,会跳转回图一页面,然后对数据进行操作

rongshupeng1024#qq.com(#换成@)




分享
0 条讨论
top