本篇文章給大家談?wù)勎⑿判〕绦蜷_發(fā)獲取手機(jī)號,以及微信小程序開發(fā)獲取手機(jī)號失敗對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
- 1、微信小程序獲取用戶手機(jī)號碼
- 2、微信小程序模擬點(diǎn)擊input框獲取用戶手機(jī)號
- 3、微信小程序獲取用戶信息、獲取用戶手機(jī)號碼
微信小程序獲取用戶手機(jī)號碼
獲取用戶手機(jī)號碼 分為以下幾步:
此處定義
getPhoneNumber 是微信官方要求,獲取用戶手機(jī)號碼授權(quán)
onGetPhoneNumber是回調(diào)函數(shù),獲取授權(quán)后會回調(diào)到該方法,也就是獲取的電話號碼就在這個(gè)函數(shù)的返回值里面。當(dāng)然這個(gè)函數(shù)是自定義的,名字大家可以隨便起,上面的getPhoneNumber可不能隨便修改。
接著我們通過授權(quán)之后,獲取第三個(gè)參數(shù)iv,調(diào)用下面方法進(jìn)行服務(wù)端解密
that.deciyption(sessionID,encryptedData,iv);
微信小程序模擬點(diǎn)擊input框獲取用戶手機(jī)號
? ? ? ?最近在做一個(gè)小程序時(shí)遇到這樣一個(gè)需求:要求在點(diǎn)擊input框時(shí)獲取用戶的手機(jī)號還可以進(jìn)行修改。但是我們都知道微信小程序獲取手機(jī)號是通過button按鈕的bindgetphonenumber屬性來實(shí)現(xiàn)的,那么怎么能在input獲得焦點(diǎn)時(shí),獲取用戶手機(jī)號呢?
? ? ? ?首先,我們先來了解一下怎么通過button按鈕來獲取用戶的手機(jī)號。在微信公眾平臺上,button按鈕有一個(gè)open-type和bindgetphonenumber的屬性:
? ? ? ? ? ?具體如下:
? ? ? ? ? ? ? ? 1.wxml:
? ??????????????????button open-type=”getPhoneNumber” bindgetphonenumber=”getPhoneNumber”輸入手機(jī)號/button
? ? ? ? ? ? ? ? 2.js
? ? ? ? ? ? ? ? ? ? 在這里我們需要注意首先要獲取用戶的openid和session_key,獲取方式如下:
? ? ? ? ? ? ? ? ? ? ? ? app.js:
? ??????????????????????wx.login({
? ? ? ????????????????????????//獲取code
? ? ? ????????????????????????success: (res) = {
? ? ? ? ????????????????????????????var code = res.code; //返回code
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? this.globalData.code = code;
? ? ? ????????????????????????????? this.globalData.appId = ‘wx5a9ded8ac4b1feb3’;
? ? ? ? ????????????????????????????this.globalData.secret = ‘7ccbca95ddc8baf065194b533043a783’;
? ? ? ? ????????????????????????????wx.request({
? ? ? ? ? ????????????????????????????????url: ” + this.globalData.appId + ‘secret=’ + this.globalData.secret + ‘js_code=’ + code + ‘grant_type=authorization_code’,
? ? ? ? ? ????????????????????????????????data: {},
? ? ? ? ? ????????????????????????????????header: {
? ? ? ? ? ? ????????????????????????????????????‘content-type’: ‘json’
? ? ? ? ????????????????????????????????? },
? ? ? ? ? ????????????????????????????????success: (res) = {
? ? ? ? ? ? ????????????????????????????????????????var openid = res.data.openid //返回openid
? ? ? ? ? ? ????????????????????????????????????????this.globalData.openId = openid;
? ? ? ? ? ? ????????????????????????????????????????this.globalData.session_key = res.data.session_key;
? ? ? ? ? ? ????????????????????????????????????????wx.request({
? ? ? ? ? ? ? ????????????????????????????????????????????????url: this.globalData.req_url + ‘/WechatUser/dealUserMsg’,
? ? ? ? ? ? ????????????????????????????????????????????????? method:’post’,
? ? ? ? ? ? ? ????????????????????????????????????????????????header: { ‘content-type’: ‘application/x-www-form-urlencoded’ },
? ? ? ? ? ? ????????????????????????????????????????????????? data:{
? ? ? ? ? ? ? ????????????????????????????????????????????????????????? openId:openid
? ? ? ? ? ? ????????????????????????????????????????????????? },
? ? ? ? ? ? ????????????????????????????????????????????????? success:res={
? ? ? ? ? ? ? ????????????????????????????????????????????????????????? console.log(res);
? ? ? ? ? ? ? ????????????????????????????????????????????????}
? ? ? ? ? ????????????????????????????????????????? })
? ? ? ? ????????????????????????????????????? }
? ? ? ? ????????????????????????????})
? ? ? ????????????????????????}
? ? ????????????????})
? ? ? ? ? ? ? ? index.js:
? ?????????????????? // 點(diǎn)擊按鈕獲取手機(jī)號
? ????????????????getPhoneNumber(e) {
? ????????????????????? wx.request({
? ? ????????????????????????? url: appData.req_url + ‘/WXCore/decrypt’,
? ? ????????????????????????? data:{
? ? ? ????????????????????????????? openId: appData.openId,
? ? ? ????????????????????????????? encryptedData: e.detail.encryptedData,
? ? ? ????????????????????????????? sessionKey: appData.session_key,
? ? ? ????????????????????????????? iv: e.detail.iv
? ? ????????????????????????? },
? ? ? ????????????????????????header: {
? ? ? ? ????????????????????????????????‘content-type’: ‘json’
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? },
? ? ? ????????????????????????success: res = {
? ? ? ????????????????????????????? this.setData({
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? inputShow: true
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? })
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?if(!res.data.res){
? ? ? ? ? ????????????????????????????console.log(‘未綁定手機(jī)號’);
? ? ? ? ????????????????????????}else{
? ? ? ? ? ????????????????????????????this.setData({
? ? ? ? ? ? ????????????????????????????????phoneNumber: res.data.bindPhone
? ? ? ? ? ????????????????????????????})
? ? ? ????????????????????????? }
? ? ????????????????????? }
? ????????????????? })
????????????? },
? ? ? ? ? ? 結(jié)果如下:
? ??????????????????
? ? ? ? ? ? 點(diǎn)擊允許,這個(gè)時(shí)候后臺會對傳過去的數(shù)據(jù)進(jìn)行解密(具體度娘搜索微信小程序手機(jī)號碼解密),就會將手機(jī)號碼返回。
? ? ? ? ? ? ok,通過button我們成功的拿到了手機(jī)號碼,那么怎么能在input框獲取焦點(diǎn)時(shí)拿到手機(jī)號碼,并且可以修改呢?
? ? ? ? ? ? 經(jīng)過a long long time的思考,終于想出了一個(gè)土辦法。那就是將一個(gè)button標(biāo)簽和一個(gè)input框通過絕對定位重疊在一起,然后將button標(biāo)簽做成input框的樣子,在我們第一次點(diǎn)擊的時(shí)候成功獲取到手機(jī)號以后,將button標(biāo)簽通過標(biāo)志位隱藏,而讓input標(biāo)簽顯示,并將拿到的手機(jī)號碼賦給input的value值,如此便可以實(shí)現(xiàn)模擬input框獲得焦點(diǎn)時(shí)獲取用戶的手機(jī)號?。?!
? ??????????
? ? ? ? ? ? 雖然土,但是成功將效果實(shí)現(xiàn)了不是?
? ? ? ? ? ? 最后給大家和我自己送上一份心靈雞湯:
? ? ? ? ? ? ? ? ? ? 你想要的永遠(yuǎn)和你付出的成正比。
微信小程序獲取用戶信息、獲取用戶手機(jī)號碼
微信小程序 在獲取用戶信息的時(shí)候 有特定的要求 :
button 按鈕中open-type有兩種方式獲取用戶的信息:getUserInfo/getPhoneNumber
下面兩種信息就是直接展示用戶頭像和用戶微信名但不可獲?。?/p>
下面我們主要介紹獲取微信綁定的手機(jī)號的問題:(MPvue模板)
bindGetUserInfo函數(shù)中的Even里面包好detail里面會有三個(gè)參數(shù):
返回參數(shù)的話是需要解密才能使用的,在這里介紹一下第三種使用云調(diào)用直接獲取開放數(shù)據(jù)的方式(前端自己解密不需要調(diào)用后端接口了~):
? ? 1、首先你的微信小程序是需要開通云開發(fā)的。(否則的話在你獲取星系以后沒回參數(shù)里面是沒有cloudID的)。
? ? ?2、在云開發(fā)里面選擇云函數(shù)然后新建云函數(shù)(注意新建云函數(shù)的名字下面需要用到的)
? ? ? ? 3、接下就是在獲取用戶信息以后調(diào)用函數(shù)解密:(mp vue 使用的話需要wx.clould.init()初始化 原生的可以忽略直接調(diào)用)
? ? ? ? 4、success :callback里面res 里面包含了當(dāng)前微信賬號大量信息:如手機(jī)賬號(res.result.weRunData.data.phoneNumber)
? ? ? ? 5、剩下的就簡單多了 可以拿著手機(jī)號碼進(jìn)行信任登陸了 !
微信小程序開發(fā)獲取手機(jī)號的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于微信小程序開發(fā)獲取手機(jī)號失敗、微信小程序開發(fā)獲取手機(jī)號的信息別忘了在本站進(jìn)行查找喔。