sponsored links

微信小程式授權獲取手機號,跟著我來學習下是如何實現的吧

序言:目前該介面針對非個人開發者,且完成了認證的小程式開放(不包含海外主體)。需謹慎使用,若使用者舉報較多或被發現在不必要場景下使用,微信有權永久回收該小程式的該介面許可權。

文件地址:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html

需求:授權手機號

實現方法:

wxml

<button class="name line1 my_money phone11" open-type='getPhoneNumber' bindgetphonenumber='getPhoneNumber' >授權手機號</button>

因為需要使用者主動觸發才能發起獲取手機號介面,所以該功能不由 API 來呼叫,需用 button 元件的點選來觸發。

js

/**
   * 手機號授權
   */
  getPhoneNumber:function(e){
    console.log(e);
    if(e.detail.errMsg != 'getPhoneNumber:ok'){
      if(e.detail.errMsg == 'getPhoneNumber:fail user deny' || e.detail.errMsg == 'getPhoneNumber:fail:user deny'){
        wx.showToast({
          title: '使用者取消',
          icon: 'none'
        })
      }else{
        wx.showToast({
          title: e.detail.errMsg,
          icon: 'none'
        })
      }
      return false;
    }
    var encryptedData = e.detail.encryptedData;
    var iv = e.detail.iv;
    this.phone_session(encryptedData,iv);
  },
  //獲取手機號session
  phone_session:function(encryptedData,iv){
    wx.showLoading({ title: '載入中' ,'mask' : false });
    var that = this;
    var token = wx.getStorageSync('TOKEN');
    var host = HTTP_REQUEST_URL;
    wx.login({
      success: function (r) {
        var params2 = {};
        params2.code =  r.code;
        wx.request({
          url: host+'/api/common/get_session_key',
          data:params2,
          method:'post',
          success: function (rr) {
            if(rr['data']['status'] == 200) {
              var session_key = rr['data']['data']['session_key'];
              wx.request({
                url: host+'/api/user/phone',
                method: 'POST',
                data: {
                  session_key: session_key,
                  encryptedData: encryptedData,
                  iv: iv,
                },
                header: {
                  'Accept': 'application/json',
                  'Authori-zation' : 'Bearer ' + token,
                },
                success(res3) {
                  // 繫結成功
                  wx.hideLoading();
                  if(res3.data.status == 200) {
                    that.setData({
                      userInfo: res3.data.data.user_info
                    })
                  } else {
                    wx.showToast({
                      title: res3.data.msg,
                      icon: 'none'
                    })
                  }
                },
                fail(res3) {
                  // 繫結失敗
                  wx.showToast({
                    title: res3.data.msg,
                    icon: 'none'
                  })
                }
              })
            } else {
              wx.showToast({
                title: rr['data']['msg'],
                icon: 'none'
              })
            }
          },
        })
      }
    })
  },
    

php

/**
     * 授權手機號
     */
    public function phone(Request $request){

        //開發者如需要獲取敏感資料,需要對介面返回的加密資料( encryptedData )進行對稱解密
        $encryptedData = input('param.encryptedData');
        $iv = input('param.iv');
        $session_key = input('param.session_key');
        require_once $root_path.'/extend/wxbizdatacrypt/wxBizDataCrypt.php';
        $pc = new \WXBizDataCrypt($wechat["routine_appId"], $session_key);

        $errCode = $pc->decryptData($encryptedData, $iv, $result);  //其中$data包含使用者的所有資料
        if ($errCode != 0) {
            return_json("網路錯誤,請重試",100);
        }else{
            $result = json_decode($result,true);
            Db::name("user")->where(["uid"=>$user_info["uid"]])->update(["phone"=>$result["phoneNumber"],"zt_phone"=>$result["phoneNumber"]]);
        }

    }

獲取微信使用者繫結的手機號,需先呼叫wx.login介面。

實現功能後如下

微信小程式授權獲取手機號,跟著我來學習下是如何實現的吧

我是小程式軟體開發,每天分享開發過程中遇到的知識點,如果對你有幫助的話,幫忙點個贊再走唄,非常感謝。

往期文章分享:

微信小程式授權登入適配wx.getUserProfile最新程式碼

小程式wx.chooseImage上傳圖片,支援相簿選擇圖片或使用相機拍照

分類: 數碼
時間: 2021-11-15

相關文章

看完這些裝修失敗現場,我總結了6條避坑指南!建議大家收藏

看完這些裝修失敗現場,我總結了6條避坑指南!建議大家收藏
你家裝修時,踩過哪些坑,有過哪些失敗的經歷呢? 我自己家裝修時,就經歷了各種磨難,踩了不少坑,為此還差點崩潰了. 不過現在想想,如果當時早點有人告訴我一些裝修要避開的坑,或許就沒那麼難受了! 為了讓大 ...

大仙兒詳解二手房交易中的注意事項,避坑指南 不能錯過

大仙兒詳解二手房交易中的注意事項,避坑指南 不能錯過
大仙兒從事房產交易很多年了,大大小小的單子也經手了上千筆,什麼樣的奇葩問題都遇見過,堪稱身經百戰,處理房產糾紛的"專家"了. 今天呢,系統地給大家分享二手房交易中的注意事項,文章末 ...

二手房交易最全流程和避坑指南

二手房交易最全流程和避坑指南
幸福裡百科詞條:二手房交易流程分為兩種,一種是有貸款的二手房交易,另一種是無貸款二手房交易,兩種交易流程上略有不同.並且,在交易過程中,購房人在不同的流程環節中,也需要留意特定的注意事項,以下具體分析 ...

瓷磚避坑指南 | 陳進林:普及瓷磚消費知識,減少家裝難題

瓷磚避坑指南 | 陳進林:普及瓷磚消費知識,減少家裝難題
2021年10月10日下午,由閩龍集團.京東居家主辦,羅馬利奧磁磚協辦,北京陶瓷商會與北京商報提供支援的,以"規範行業發展,拒絕消費陷阱"為主題的"瓷磚消費避坑" ...

realme GT Neo2 價效比之王嫌曲面屏大師探索版的可以入手

realme GT Neo2 價效比之王嫌曲面屏大師探索版的可以入手
真我手機今年大爆發 敢越級 出來多款手機 中高低端 全面發展 手機價效比高 也漂亮 國產越來越好了 體驗了大師探索版執行流暢 機身瘦長手感好,晨曦顏色經驗 拍照效果槓槓的,微曲不變形 玩遊戲喜歡直屏的 ...

realme真我GT大師探索版的表現,讓我們看到了庫克與喬布斯的差距

realme真我GT大師探索版的表現,讓我們看到了庫克與喬布斯的差距
2011年10月5號,一家偉大的科技公司的創始人帶著他還未完成的夢想,永遠地離開了這個世界,離開了他為之付出了35年的心血.這個人就是喬布斯,他與蓋瑞.韋恩等人於1976年4月1日創立了蘋果公司,這個 ...

帶魚屏顯示器有哪些優缺點?2021年帶魚屏顯示器選購避坑指南

帶魚屏顯示器有哪些優缺點?2021年帶魚屏顯示器選購避坑指南
相信很多玩股票.程式設計師.統計員.財務等夥伴採用電腦拼接的方式來拓展視視,從而提升工作效率.還有的夥伴更是採用三臺顯示器進行拼接,一臺碼程式碼.一臺瀏覽網頁.一臺用於微信等聊天工具,這樣就不用頻繁切 ...

最全純乾貨二手車避坑指南,你要不要了解一下?

最全純乾貨二手車避坑指南,你要不要了解一下?
夏天到了,天氣轉好,又到了騎車的季節,沒車的小夥伴也開始蠢蠢欲動了吧,對於二手車這個類目,我相信每個想買車的小夥伴都逃不掉,難免會糾結一番,畢竟二手車確實性價比高,而且可以解決某些車購買新車需要等待一 ...

二手房避坑指南!二手房你應該這樣買

二手房避坑指南!二手房你應該這樣買
有粉絲朋友私信我,問我買二手房應該注意點什麼?其實目前師兄團隊的主業是新房,以後可能會染指二手房,如果以後我們做二手房不收佣金[奸笑],你們說怎麼樣,哈哈哈哈!那麼今天就來聊聊二手房應該注意點什麼,二 ...

裝修避坑指南,至少裝修過三套房以上,給大家總結9個地方
1.乳膠漆,刷完乳膠漆至少要關門關窗悶兩三天,再開窗通風.急於開窗通風,你家的乳膠漆會在短時間內快速流失水分,造成牆面.石膏開裂.再貴的乳膠漆也沒用,一樣開裂,根本不是乳膠漆好壞的問題.另外,提醒北方 ...

家電不知怎麼選?這篇全屋家電避坑指南,幫你找準選購關鍵點

家電不知怎麼選?這篇全屋家電避坑指南,幫你找準選購關鍵點
暢談關於裝修的那些事,分享裝修的各種經驗和知識.大家好,我是暢談裝修,關注我即可瞭解更多關於裝修的那些事! 幸福感,大到擁有一個理想的家,小到從每一件家電的挑選開始! 對於準備裝修.或是已經是正在裝修 ...

避坑指南:購買二手房需要注意哪些?

避坑指南:購買二手房需要注意哪些?
由於二手房方便入住的優勢,不少人更傾向於購買二手房.但是在二手房的選擇上,需要購房者更加註意一些細節.上期我們瞭解到購買二手房的一些步驟流程,今天小編就帶大家來了解一些購買二手房中需要注意的細節事項. ...

冰箱避坑指南:家電銷售人員乾貨分享,照著買不糾結

冰箱避坑指南:家電銷售人員乾貨分享,照著買不糾結
說個行業小秘密:很多推薦你買進口冰箱的銷售人員,自己家裡都不會選擇進口冰箱.之前有碰到過冰箱壞了一個配件,更換下就能解決的那種小問題,因為是進口的,配件就很難買到,人能等冰箱裡面的食材等不了呀,放一天 ...

二手車丨小白避坑指南之誰都能看懂的泡水車鑑別手冊

二手車丨小白避坑指南之誰都能看懂的泡水車鑑別手冊
文:懂車帝原創 朱偉峰 [懂車帝原創 產品]雨季來襲,泡水車又成為了目前最為廣泛討論的話題主角,不少朋友擔心這些車會流入市場,這些朋友可以先放下心來,現在絕大多數正規二手車交易市場中的商家都是受到市場 ...

小白入門避坑指南,說說新手選購音響的四個注意事項

小白入門避坑指南,說說新手選購音響的四個注意事項
導讀: 仔細與耐心是獲得"完美"音響的基礎,選購音響不是一件輕鬆的事,稍有不慎就會在音響的"花花世界"裡迷了眼.從品牌.型號到價位,從比較.試聽到購買,只有老老 ...

玩一天環球影城有多嗨?第一手的避坑攻略來了,新手看了不迷路

玩一天環球影城有多嗨?第一手的避坑攻略來了,新手看了不迷路
從夏天開始,環球影城就列上了無數愛玩者的日程,全球最大.國內唯一.遍地IP.老少咸宜.背靠京津翼大生活圈,種種利好因素調動起強大的遊玩熱情,一開園就人氣爆棚. 環球雖然好玩,集合了當下最頂級的娛樂園專 ...

一樓帶院子花園改造雖然溫馨,但仍需“避坑”

一樓帶院子花園改造雖然溫馨,但仍需“避坑”
幸福裡百科詞條:一樓帶花園改造不僅可以滿足購房者的"院子"夢想,還有可以讓生活更加舒適和精緻,對於養寵物的家庭來說,貓貓狗狗也能經常在室外活動,有更充足的空間.但是購買一樓帶院子的 ...

入戶鞋櫃設計如何避坑?

入戶鞋櫃設計如何避坑?
入戶鞋櫃設計如何避坑 我家新房裝修全屋定製的櫃子面積有36平左右,主要包含1鞋櫃.1餐櫃.1書櫃.3衣櫃,總花費3w左右(按投影面積計算),因為是自裝,擔心踩坑,所以前期不停穿梭於抖音.住小幫.小紅書 ...

寶寶買保險如何避坑?

寶寶買保險如何避坑?
現在保險產品可以說是五花八門,保險公司也有將近100家,哪家的產品比較好,價效比比較高呢,我們應該如何去挑選適合自己的產品呢?又如何能買到價效比高的產品呢? 下面請大家一起隨我走進保險,瞭解保險功能, ...

女明星都會中招!這幾個面部特徵最顯老,普通人又如何正確避坑?

女明星都會中招!這幾個面部特徵最顯老,普通人又如何正確避坑?
每個人都曾十八歲,也總有人正在十八歲,記得有段時間,曾流行曬出媽媽們年輕時候的照片,大家看了之後不得不感嘆:"誰年輕的時候還不是個美女呢?"這話雖然不假,但再過個十幾年就會發現有的 ...