用户点击获取用户手机号码按钮

 <button class='pop_btn' plain="true"  open-type='getPhoneNumber' bindgetphonenumber="getPhoneNumber">获取用户手机号</button>

wxlogin: function () {//获取用户的openID和sessionKey
    var that = this;
    wx.login({  //获取code 使用wx.login得到的登陆凭证,用于换取openid
        success: (res) => {
            wx.request({
                method: "GET",
                url: 'https://xxxwx/wxlogin.do',
                data: {
                code: res.code,
                appId: "appIdSbcx",
                appKey: "appKeySbcx"
                },
                header: {
                'content-type': 'application/json' // 默认值
                },
                success: (res) => {
                    console.log(res);
                    that.setData({
                    sessionKey: res.data.session_key
                    });
                }
            });
        }
    });
}

getPhoneNumber: function (e) {//点击获取手机号码按钮
    var that = this;
    wx.checkSession({
        success: function () {
            console.log(e.detail.errMsg)
            console.log(e.detail.iv)
            console.log(e.detail.encryptedData)
            var ency = e.detail.encryptedData;
            var iv = e.detail.iv;
            var sessionk = that.data.sessionKey;
            if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
                that.setData({ modalstatus: true });
            } else {            //同意授权
                wx.request({
                    method: "GET",
                    url: 'https://xxx/wx/deciphering.do',
                    data: {
                        encrypdata: ency,
                        ivdata: iv,
                        sessionkey: sessionk
                    },
                    header: {
                    'content-type': 'application/json' // 默认值
                    },
                    success: (res) => {
                        console.log("解密成功~~~~~~~将解密的号码保存到本地~~~~~~~~");
                        console.log(res);
                        var phone = res.data.phoneNumber;
                        console.log(phone);         
                    }, fail: function (res) {
                        console.log("解密失败~~~~~~~~~~~~~");
                        console.log(res);
                    }
                });
            }
        },
        fail: function () {
            console.log("session_key 已经失效,需要重新执行登录流程");
            that.wxlogin(); //重新登录
        }
    });
}

参考链接:https://blog.csdn.net/chen_pan_pan/article/details/80606658

posted on 2018-09-18 10:50  瞄一眼  阅读(863)  评论(0编辑  收藏  举报