国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信小程序獲取用戶手機(jī)號(hào)碼教程(前端+后端)

這篇具有很好參考價(jià)值的文章主要介紹了微信小程序獲取用戶手機(jī)號(hào)碼教程(前端+后端)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1.背景介紹

在開(kāi)發(fā)一款微信小程序時(shí),需要用戶進(jìn)行微信登錄,獲取用戶的手機(jī)號(hào)碼來(lái)作為用戶的唯一標(biāo)識(shí)(userId),于是探索獲取用戶手機(jī)號(hào)碼的方式;

(當(dāng)然,通過(guò)wx.login來(lái)獲取code,進(jìn)而換取用戶的openid也是可以的)

目前版本的微信小程序獲取用戶手機(jī)號(hào)碼的方式如下:

前端開(kāi)發(fā)參考:手機(jī)號(hào)快速填寫(xiě)組件 | 微信開(kāi)放文檔

后端開(kāi)發(fā)參考:

手機(jī)號(hào)快速填寫(xiě) | 微信開(kāi)放文檔

步驟如下:

①利用手機(jī)號(hào)快速填寫(xiě)的功能,將button組件?open-type?的值設(shè)置為?getPhoneNumber

②用戶點(diǎn)擊按鈕,彈出申請(qǐng)獲取用戶手機(jī)號(hào)的彈窗:

微信小程序 獲取手機(jī)號(hào),全棧,Java Web,微信小程序,小程序,前端

③如果用戶點(diǎn)擊允許,則可以通過(guò)bindgetphonenumber事件回調(diào)獲取到動(dòng)態(tài)令牌code(注意這里的code和wx.login的code不一樣,而且獲取用戶手機(jī)號(hào)碼不需要提前調(diào)用wx.login獲取code了)

④把code傳到開(kāi)發(fā)者后臺(tái),并在開(kāi)發(fā)者后臺(tái)調(diào)用微信后臺(tái)提供的?phonenumber.getPhoneNumber?接口,消費(fèi)code來(lái)?yè)Q取用戶手機(jī)號(hào)

注意一點(diǎn),獲取手機(jī)號(hào)的功能好像只允許經(jīng)過(guò)認(rèn)證的小程序使用,如果未認(rèn)證只能使用測(cè)試號(hào)才可以

否則便會(huì)報(bào)錯(cuò):

微信小程序 獲取手機(jī)號(hào),全棧,Java Web,微信小程序,小程序,前端

2.前端代碼

開(kāi)發(fā)環(huán)境:Uniapp框架

微信小程序調(diào)試基礎(chǔ)庫(kù)的版本:2.32.1

微信小程序 獲取手機(jī)號(hào),全棧,Java Web,微信小程序,小程序,前端

基本思路:通過(guò)按鈕綁定監(jiān)聽(tīng)事件,獲取用戶授權(quán),得到code,傳到后端換取用戶手機(jī)號(hào):

代碼如下:

按鈕:

<button open-type="getPhoneNumber" class="login_button" @getphonenumber="login" v-show="!logged">登錄</button>

login函數(shù):

//登錄按鈕
login(e) {
  console.log(e)
  var detail = e.detail
  if (detail.errMsg == "getPhoneNumber:ok") {
    console.log("用戶同意授權(quán)")
    var code = detail.code
    uni.request({
      url: "http://localhost:8081/getPhoneNumber", //調(diào)用接口
      method: 'POST',
      header: {
        'content-type': 'application/json'
      },
      data: {
        code: code, //請(qǐng)求體中封裝code
      },
      success(e) {
        console.log(e)
        var userId = e.data.phone_info.purePhoneNumber;
        uni.setStorage({
          key: "userId",
          data: userId,
          success() {
            uni.switchTab({
              url: "../../pages/homePage/homepage"
            })
          }
        })
      },
      fail(e) {
        uni.showModal({
          title: "錯(cuò)誤!",
          content: "網(wǎng)絡(luò)錯(cuò)誤!",
          complete() {
          }
        })
      }
    })
  }
}

3.后端代碼

開(kāi)發(fā)環(huán)境:springboot

開(kāi)發(fā)工具:idea

如果對(duì)于idea創(chuàng)建springboot項(xiàng)目有任何問(wèn)題,可以參考的這一篇文章的后端代碼部分:

百度翻譯API使用教程(前端+后端)_THE WHY的博客-CSDN博客

代碼展示如下:

@RestController
    public class PhoneNumberController {

        @PostMapping("/getPhoneNumber")
        public Object getPhoneNumber(@RequestBody Map<String,Object> data)
        {
            //通過(guò)appid和secret來(lái)獲取token
            //WXContent.APPID是自定義的全局變量
            String tokenUrl = String.format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s", WXContent.APPID, WXContent.APPSECRET);
            JSONObject token = JSON.parseObject(HttpUtil.get(tokenUrl));

            //通過(guò)token和code來(lái)獲取用戶手機(jī)號(hào)
            String url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + token.getString("access_token");

            //封裝請(qǐng)求體
            Map<String, String> paramMap = new HashMap<>();
            paramMap.put("code", data.get("code").toString());

            //封裝請(qǐng)求頭
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_JSON);

            HttpEntity<Map<String, String>> httpEntity = new HttpEntity<>(paramMap,headers);

            //通過(guò)RestTemplate發(fā)送請(qǐng)求,獲取到用戶手機(jī)號(hào)碼
            RestTemplate restTemplate = new RestTemplate();
            ResponseEntity<Object> response = restTemplate.postForEntity(url, httpEntity, Object.class);

            //返回到前端展示
            return response.getBody();
        }
    }

4.結(jié)果展示

在我的前端代碼中有緩存用戶id的功能,如果成功登錄,即可在緩存中查看到用戶id,如下:

微信小程序 獲取手機(jī)號(hào),全棧,Java Web,微信小程序,小程序,前端

5.補(bǔ)充:獲取用戶頭像

微信小程序獲取用戶信息的功能好像挺離譜的,一直改來(lái)改去,目前大多是通過(guò)點(diǎn)擊頭像申請(qǐng)獲取微信頭像來(lái)實(shí)現(xiàn)

<button class="mine_avatar_wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
  <image class="mine_image" :src="avatarUrl"></image>
</button>

通過(guò)open-type綁定選擇用戶頭像的功能,然后點(diǎn)擊按鈕即可彈出彈窗:

微信小程序 獲取手機(jī)號(hào),全棧,Java Web,微信小程序,小程序,前端

而onChooseAvatar函數(shù)則是獲取到微信頭像后渲染到頁(yè)面上

onChooseAvatar(e)
	{
			this.avatarUrl = e.detail.avatarUrl
			uni.setStorageSync('avatarUrl',this.avatarUrl)
	},

這里選擇使用用戶頭像即可修改用戶頭像為微信頭像:

微信小程序 獲取手機(jī)號(hào),全棧,Java Web,微信小程序,小程序,前端

如果有什么問(wèn)題,歡迎留言討論,作者也是初學(xué)者,如果有錯(cuò)誤的話歡迎指正~文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-526278.html

到了這里,關(guān)于微信小程序獲取用戶手機(jī)號(hào)碼教程(前端+后端)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 微信小程序登錄及獲取手機(jī)號(hào)碼

    前端:微信先授權(quán)登錄后再授權(quán)獲取手機(jī)號(hào)碼 后端:先微信登錄獲取openid返回前端,前端再傳遞手機(jī)號(hào)碼code給后端獲取手機(jī)號(hào)碼并在本地?cái)?shù)據(jù)量注冊(cè)用戶信息,需提供2個(gè)接口 第一步:先通過(guò)code微信授權(quán)登錄獲取openid 第二步:根據(jù)app_id和app_secret獲取access_token 第三步:根據(jù)

    2024年02月12日
    瀏覽(24)
  • 微信小程序登錄+獲取手機(jī)號(hào)碼(前端+后端)

    微信小程序登錄+獲取手機(jī)號(hào)碼(前端+后端)

    上面這張是微信小程序官方原圖,登錄流程如上圖所示,下面一步步進(jìn)行以及說(shuō)一下碰到的坑。 1.wx.login()獲取code ? ? ? ? 調(diào)用微信小程序官方提供的方法獲取code提供給后端用以換取session_key、openid。 ? ? ? ? 注意:code只能使用一次就會(huì)失效,且有效期為5分鐘 2.后端收到

    2024年02月12日
    瀏覽(95)
  • 微信小程序獲取手機(jī)號(hào)碼 phonenumber.getPhoneNumber 提示47001錯(cuò)誤

    微信小程序獲取手機(jī)號(hào)碼 phonenumber.getPhoneNumber 提示47001錯(cuò)誤

    微信小程序獲取手機(jī)號(hào)碼 phonenumber.getPhoneNumber 提示47001錯(cuò)誤 經(jīng)過(guò)測(cè)試, 文檔說(shuō)的是body 類型 實(shí)際卻是json類型 正確代碼如下:

    2024年02月06日
    瀏覽(25)
  • 【微信小程序】新版獲取手機(jī)號(hào)碼實(shí)現(xiàn)一鍵登錄(uniapp語(yǔ)法)(完整版附源碼)

    【微信小程序】新版獲取手機(jī)號(hào)碼實(shí)現(xiàn)一鍵登錄(uniapp語(yǔ)法)(完整版附源碼)

    需求 如圖,點(diǎn)擊按鈕,獲取用戶手機(jī)號(hào)實(shí)現(xiàn)一鍵登錄,當(dāng)然,用戶也可以自行輸入其他手機(jī)號(hào)進(jìn)行登錄 問(wèn)題 要想獲取用戶手機(jī)號(hào)并不復(fù)雜,但由于近幾年微信小程序獲取手機(jī)號(hào)的api進(jìn)行了更新,當(dāng)前很多帖子使用的仍是舊的方式,先調(diào)wx.login()獲取code,iv,等等加密數(shù)據(jù), 給到

    2024年02月05日
    瀏覽(26)
  • 微信小程序-授權(quán)登錄(手機(jī)號(hào)碼)

    微信小程序-授權(quán)登錄(手機(jī)號(hào)碼)

    template ?? ?view class=\\\"work-container\\\" ?? ??? ?view class=\\\"login\\\" ?? ??? ??? ?view class=\\\"content\\\" ?? ??? ??? ??? ?button class=\\\"button_wx\\\" open-type=\\\"getPhoneNumber\\\" @getphonenumber=\\\"getPhoneNumber\\\" ?? ??? ??? ??? ??? ?u-icon name=\\\"weixin-fill\\\" color=\\\"#FFFFFF\\\" size=\\\"50\\\"/u-icon ?? ??? ??? ??? ??? ?

    2024年02月06日
    瀏覽(34)
  • 微信小程序授權(quán)手機(jī)號(hào)碼登錄

    因公司項(xiàng)目需要做微信小程序相關(guān)項(xiàng)目,故記錄一下相關(guān)開(kāi)發(fā)要點(diǎn)。 使用的是binarywang工具包,版本為4.1.0。 后端框架使用springboot 更多其他功能使用推薦查看https://github.com/binarywang/binarywang 3.1 微信小程序開(kāi)發(fā)的相關(guān)配置 在application.yml文件中配置 3.2創(chuàng)建配置文件 代碼如下(示

    2024年02月09日
    瀏覽(27)
  • 微信小程序開(kāi)發(fā)筆記 進(jìn)階篇⑤——getPhoneNumber 獲取用戶手機(jī)號(hào)碼(基礎(chǔ)庫(kù) 2.21.2 之前)

    微信小程序開(kāi)發(fā)筆記 進(jìn)階篇⑤——getPhoneNumber 獲取用戶手機(jī)號(hào)碼(基礎(chǔ)庫(kù) 2.21.2 之前)

    微信小程序開(kāi)發(fā)筆記——導(dǎo)讀 大部分微信小程序開(kāi)發(fā)者都會(huì)有這樣的需求: 獲取小程序用戶的手機(jī)號(hào)碼 。 但是,因?yàn)樾〕绦蛴脩舻氖謾C(jī)號(hào)碼屬于重要信息,為了安全,所以需要如下一系列較為復(fù)雜的方法和步驟。 我前期主要通過(guò)小程序云的方法獲取用戶手機(jī)號(hào)碼,后面 因

    2024年02月09日
    瀏覽(18)
  • 微信小程序開(kāi)發(fā)筆記 進(jìn)階篇⑥——getPhoneNumber 獲取用戶手機(jī)號(hào)碼(基礎(chǔ)庫(kù) 2.21.2 之后)

    微信小程序開(kāi)發(fā)筆記 進(jìn)階篇⑥——getPhoneNumber 獲取用戶手機(jī)號(hào)碼(基礎(chǔ)庫(kù) 2.21.2 之后)

    微信小程序開(kāi)發(fā)筆記——導(dǎo)讀 大部分微信小程序開(kāi)發(fā)者都會(huì)有這樣的需求: 獲取小程序用戶的手機(jī)號(hào)碼 。 但是,因?yàn)樾〕绦蛴脩舻氖謾C(jī)號(hào)碼屬于重要信息,為了安全,所以需要如下一系列較為復(fù)雜的方法和步驟。 我前期主要通過(guò)小程序云的方法獲取用戶手機(jī)號(hào)碼,后面 因

    2024年02月03日
    瀏覽(23)
  • 【微信小程序】使用 Cryptojs 解密微信綁定手機(jī)號(hào)碼

    【微信小程序】使用 Cryptojs 解密微信綁定手機(jī)號(hào)碼

    ? ? ?很抱歉斷更了一段時(shí)間,因?yàn)樽罱谧鲆粋€(gè)項(xiàng)目比較忙,正好項(xiàng)目中小程序板塊需要解密手機(jī)號(hào)碼來(lái)提交給接口,小程序中雖然提供了獲取手機(jī)號(hào)按鈕點(diǎn)擊事件: bindgetphonenumber ,但是該事件的處理函數(shù)中只能獲取到加密過(guò)的手機(jī)號(hào)碼, 網(wǎng)上大部分教程都是使用 java,

    2024年02月09日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包