zoukankan      html  css  js  c++  java
  • uniapp 获取用户手机号

    参考资料:

    微信小程序官方文档

    uniapp开发微信小程序获取用户手机号

    页面增加一个按钮

    <button open-type="getPhoneNumber" @getphonenumber="onGetPhoneNumber">唤起授权</button>

    前端解密

    安装 crypto-js

    npm install crypto-js

    下载 WXBizDataCrypt.js 文件

    WXBizDataCrypt.js微信官方下载地址

    打开Node文件夹,把 WXBizDataCrypt.js 文件放入你的项目中。(比如我是放在我的common文件夹下)
    在需要解密的页面引用该文件
    import WXBizDataCrypt from "@/common/WXBizDataCrypt.js"; //请以你的实际地址为准

    具体代码如下,关键位置请看注释

    <script>
        //在需要解密的页面引用该文件
        import WXBizDataCrypt from "@/common/WXBizDataCrypt.js";
        export default {
            data() {
                return {}
            },
            methods: {
                getPhoneNumber(PhoneNumber) {
                    let appid = "wxce185cd1da123456" //需替换
                    let secret = "25d0fe7478355910fc143ce6b1234567"  //需替换
                    //调用 wx.login 接口,获取code
                    uni.login({
                        provider: 'weixin',
                        success: res => {
                            let url = 'https://api.weixin.qq.com/sns/jscode2session?appid=' + appid + '&secret=' + secret +
                                '&js_code=' +
                                res.code + '&grant_type=authorization_code';
    
                            //用 code 换取 session 和 openId
                            uni.request({
                                url: url, // 请求路径
                                success: res => { //成功res返回openid,session_key
                                    // console.log(res)
                                    //解密用户信息
                                    let pc = new WXBizDataCrypt(appid, res.data.session_key);
                                    let data = pc.decryptData(PhoneNumber.detail.encryptedData, PhoneNumber.detail.iv);
                                    // //data就是最终解密的用户信息 
                                    // countryCode: "86"  区号
                                    // phoneNumber: "15634123456"  用户绑定的手机号(国外手机号会有区号)
                                    // purePhoneNumber: "15634123456"  没有区号的手机号
                                    // watermark:
                                    //         appid: "wxce185cd1da123456"
                                    //         timestamp: 1607906868
                                    console.log(data)
                                },
                                fail: err => {
                                    console.log(err)
                                }
                            })
                        }
                    })
                }
            }
        }
    </script>

  • 相关阅读:
    Word操作——通配符
    圆的拟合
    最优化案例整理
    机器学习数学基础知识备忘
    scikit-learn学习笔记
    Linux下安装scikit-learn
    ROS学习备忘
    [ROS]激光驱动安装
    CMake和Linux编程:find_package的使用
    [OpenCV]直线拟合
  • 原文地址:https://www.cnblogs.com/liessay/p/14131518.html
Copyright © 2011-2022 走看看