uniapp獲取用戶OpenId及用戶詳情


頁面增加一個按鈕

<button type="default" open-type="getUserInfo" @click="getUserInfo">UserInfo</button>

前端解密

安裝 crypto-js

npm install crypto-js

下載 WXBizDataCrypt.js 文件
WXBizDataCrypt.js微信官方下載地址

打開Node文件夾,把 WXBizDataCrypt.js 文件放入你的項目中。(比如我是放在我的common文件夾下)
在需要解密的頁面引用該文件

import WXBizDataCrypt from "@/common/WXBizDataCrypt.js";        //請以你的實際地址為准

具體代碼如下,關鍵位置請看注釋

data() {
            return {
                Code: '',
                openid: '',
                session_key: ''
            }
        },
getUserInfo() {
                //登錄
                uni.login({
                    provider: 'weixin',
                    success: res => {
                        // console.log('登錄成功:', res);
                        //獲取臨時登錄憑證code
                        this.Code = res.code;
                        //獲取openid,session_key
                        let appid = "wxce185cd1da123456"  //需替換
                        let secret = "25d0fe7478355910fc143ce6b1234567"  //需替換
                        let url = 'https://api.weixin.qq.com/sns/jscode2session?appid=' + appid + '&secret=' + secret +
                            '&js_code=' +
                            this.Code + '&grant_type=authorization_code';
                        uni.request({
                            url: url, // 請求路徑
                            success: res => {
                                // console.log('openid session_key:', res.data);
                                this.openid = res.data.openid
                                this.session_key = res.data.session_key

                                //獲取用戶信息
                                uni.getUserInfo({
                                    provider: 'weixin',
                                    success: res => {
                                        console.log('獲取用戶信息', res);
                                        //解密encryptedData,可獲取用戶openId
                                        let pc = new WXBizDataCrypt(appid, this.session_key);
                                        let data = pc.decryptData(res.encryptedData, res.iv);
                                        console.log('解密后:',data)
                                    },
                                    fail: err => {
                                        console.log('獲取用戶信息錯誤:', err)
                                    }
                                })

                            },
                            fail: err => {
                                console.log('請求失敗:',err)
                            }
                        });
                    },
                    fail: err => {
                        console.log('登錄失敗:', err)
                    }
                })
            },


免責聲明!

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



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