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>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM