日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微信小程序:获取用户手机号码的过程

發布時間:2024/5/14 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信小程序:获取用户手机号码的过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這幾天是疫情期間,老板為了配合我們公司的線上產品,讓我們技術人員開發了一個簡單的小程序,在開發過程中,就提到了獲取用戶手機號碼的需求,然后我查閱了微信小程序開發文檔,由此,我想記錄一下,方便我以后查閱
首先,思路要明確,要想獲取手機號碼,那我們就得微信授權,微信授權的話,那我們就得獲取微信的登錄,所以第一步,調用微信登錄的api:

wx.login({success (res) {if (res.code) {//發起網絡請求wx.request({url: 'https://test.com/onLogin',data: {code: res.code}})} else {console.log('登錄失敗!' + res.errMsg)}} })

然后,我們將獲取到的code,發送給后臺,后臺會返回一個oppenId給前端,然后我們開始調用獲取手機號碼的api

官方文檔說的很詳細

getPhoneNumber (e) {console.log(e.detail.iv)console.log(e.detail.encryptedData)if(e.detail.iv)){//表示授權成功,自己可以測試一下,成功后就可以發送請求給后臺,獲取解密 后的手機號碼}}

此處還有一個問題,就是授權成功的前提,需要登錄,一開始,我是在獲取手機號碼的地方,先登錄,登錄成功后,我在手機號碼進行授權的,但是這樣會存在問題, 當時報了英文錯誤

The given payload is invalid

其實這個錯誤,官方文檔給了注意,當時自己沒有留意這些在重點突出一下

在回調中調用 wx.login 登錄,可能會刷新登錄態。此時服務器使用 code 換取的 sessionKey 不是加密時使用的 sessionKey,導致解密失敗。建議開發者提前進行 login;或者在回調中先使用 checkSession 進行登錄態檢查,避免 login 刷新登錄態。

所以最好將登錄放在周期函數onload()里面,然后就不會出現這個問題了,為了避免重復登錄,我們可以將登錄寫在checkSesson里面

wx.checkSession({success () {//session_key 未過期,并且在本生命周期一直有效},fail () {// session_key 已經失效,需要重新執行登錄流程wx.login({success (res) {if (res.code) {//發起網絡請求-獲取openId等參數,存儲起來wx.request({url: 'https://hdxcx.cdamai.com/wechat/login',method: 'POST',data: {code: res.code,scene:decodeURIComponent(options.scene)},header: {'content-type':'application/x-www-form-urlencoded','Accept': 'application/json'},success (res) {let code = res.data.code;if(code == "0"){wx.setStorageSync('openId',res.data.data.openid);}else{wx.showToast({title:'登錄失敗',icon: 'none',duration: 2000});}}},)} else {console.log('登錄失敗!' + res.errMsg)}}})}})

別的好像沒什么可記錄的了,后期遇到問題,我會慢慢補充的

總結

以上是生活随笔為你收集整理的微信小程序:获取用户手机号码的过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。