【微信小程序】6、SpringBoot整合WxJava獲取用戶手機號

1、手機號快速驗證組件

手機號快速驗證組件 旨在幫助開發者向用戶發起手機號申請,并且必須經過用戶同意后,開發者才可獲得由平臺驗證后的手機號,進而為用戶提供相應服務。

該能力與手機號實時驗證組件的區別為:

  • 手機號快速驗證組件,平臺會對號碼進行驗證,但不保證是實時驗證;
  • 手機號實時驗證組件,在每次請求時,平臺均會對用戶選擇的手機號進行實時驗證。

2、拉起授權

定義一個按鈕,open-type=“getPhoneNumber”,用戶點擊之后會拉起手機號授權組件,當用戶點擊并同意之后,通過 bindgetphonenumber 事件獲取回調信息。

<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>
Page({getPhoneNumber (e) {console.log(e.detail.code)  // 動態令牌console.log(e.detail.errMsg) // 回調信息(成功失敗都會返回)console.log(e.detail.errno)  // 錯誤碼(失敗時返回)}
})

3、通過code換取手機號

import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import com.alibaba.fastjson2.JSONObject;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@Slf4j
@Tag(name = "WxMaUserController", description = "用戶相關")
@RequiredArgsConstructor
@RestController
@RequestMapping("ma/user")
public class WxMaUserController {private final WxMaService wxMaService;@Operation(summary = "獲取手機信息")@PostMapping("getUserPhone")public String getUserPhone(@RequestBody JSONObject jsonObject) throws WxErrorException {// 解密手機信息WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService().getPhoneNumber(jsonObject.getString("code"));return phoneNoInfo.toString();}
}

返回得到:

{"errcode":0,"errmsg":"ok","phone_info": {"phoneNumber":"xxxxxx","purePhoneNumber": "xxxxxx","countryCode": 86,"watermark": {"timestamp": 1637744274,"appid": "xxxx"}}
}

phoneNumber 為用戶綁定的手機號(國外手機號會有區號),purePhoneNumber 為沒有區號的手機號。

注意:

  • 每個code有效期為5分鐘,且只能消費一次。
  • getPhoneNumber 返回的 code 與 wx.login 返回的 code 作用是不一樣的,不能混用。

如您在閱讀中發現不足,歡迎留言!!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/86394.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/86394.shtml
英文地址,請注明出處:http://en.pswp.cn/web/86394.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

redis8.0新特性:原生JSON支持詳解

文章目錄 一、寫在前面二、使用1、基本命令&#xff08;1&#xff09;JSON.SET 設置 JSON 值&#xff08;2&#xff09;JSON.GET 獲取 JSON 值&#xff08;3&#xff09;JSON.DEL 刪除 JSON 值&#xff08;4&#xff09;JSON.MGET 批量獲取&#xff08;5&#xff09;JSON.MSET …

QT網絡調試助手開發全指南,軟件設計圖預研,后續文檔跟進補充

網絡調試助手 1 TCP網絡調試助手 1.1 項目概述 網絡相關的一些基礎概念學習QTcpServer 學習QTcpClient 學習TextEdit特定位置輸入文字顏色學習網絡通信相關知識點 復習鞏固之前UI控件 程序運行如下圖所示 1.2 開發流程 1.3 QTtcp 服務器的關鍵流程 工程建立&#xff0c;需要在…

網絡分層模型與協議體系技術研究報告

網絡分層模型是計算機網絡體系結構的核心框架&#xff0c;它通過將復雜的網絡通信過程分解為多個層次&#xff0c;使網絡設計、實現和維護變得更加模塊化和標準化。 一、分層模型概念 1、OSI七層模型的詳細解析 開放系統互連參考模型&#xff08;OSI/RM&#xff09;是國際標…

C++面向對象7——C繼承與C++繼承對比、C++繼承詳解

繼承 C語言與C繼承機制的對比與實現 一、C語言模擬繼承的實現方法 C語言不支持面向對象編程的原生繼承機制&#xff0c;但可以通過結構體嵌套和函數指針組合來模擬。 1. 結構體嵌套實現"is-a"關系 // 基類&#xff1a;Shape typedef struct {int x;int y; } Sha…

運維打鐵: Windows 服務器基礎運維要點解析

文章目錄 思維導圖一級節點&#xff1a;Windows 服務器基礎運維要點 詳細內容解析系統安裝與配置硬件準備安裝介質選擇系統安裝過程初始配置 日常監控與維護性能監控服務狀態檢查日志管理 安全管理賬戶與權限管理防火墻配置病毒防護 備份與恢復備份策略制定備份工具使用恢復測試…

Python實例題:基于量子計算的優化算法實現(量子計算、優化理論)

目錄 Python實例題 題目 問題描述 解題思路 關鍵代碼框架 難點分析 擴展方向 Python實例題 題目 基于量子計算的優化算法實現&#xff08;量子計算、優化理論&#xff09; 問題描述 開發一個基于量子計算的優化算法實現&#xff0c;包含以下功能&#xff1a; 量子計…

基本算法--藍橋杯備考

1.前綴和 1.定義 假設有一個數組a[n],要計算它的前j個元素的和為 a[0]a[1]...a[j-1] 時間復雜度為O(j)&#xff0c;且隨著j的變大時間復雜度越來越大。 使用了前綴和算法則為 sum[j]-sum[j-1] 時間復雜度是O(1)&#xff0c;且數據越大優勢越明顯。 2.例題一 詳解見《可…

pgsql 中各個字符串的區別

PostgreSQL 提供了多種字符串類型&#xff0c;它們在存儲方式、長度限制和適用場景上有所不同。以下是主要字符串類型的詳細對比和區別&#xff1a; 一、核心字符串類型對比 CHAR(n)/CHARACTER(n) 特點&#xff1a;固定長度字符串&#xff0c;不足部分用空格填充最大長度&…

ubuntu中lightdm干嘛的?

在 Ubuntu 或其他 Linux 發行版中&#xff0c;LightDM 是一個輕量級的 顯示管理器&#xff08;Display Manager&#xff09;&#xff0c;負責圖形化登錄界面、用戶認證和會話啟動。以下是它的核心作用、特點及類似替代品的對比&#xff1a; 1. LightDM 的核心作用 功能說明圖形…

GraphQL注入 -- GPN CTF 2025 Real Christmas

part 1 服務器會每段時間禁用已注冊的賬號,此處存在漏洞 def deactivate_user_graphql(email):graphql_endpoint current_app.config["GRAPHQL_ENDPOINT"]query f"""mutation {{deactivateUser (user: {{email: "{email}"}}){{ success…

【機器學習深度學習】非線性激活函數

目錄 前言 一、什么是激活函數&#xff1f; 1.1 作用 二、如果沒有激活函數&#xff0c;會發生什么&#xff1f; 2.1 先看一張圖理解“線性”的局限 2.2 核心認知&#xff1a;為什么非線性如此重要&#xff1f; 三、非線性激活函數到底解決了什么問題&#xff1f; 1. 引…

國外開源客服系統chathoot部署,使用教程

目錄 一、系統版本要求&#xff1a; 二、部署步驟 2.1 安裝docker 和docker-compose 2.2 準備docker-compose.yaml 2.3 初始化數據庫 2.4 安裝nginx 2.6 啟動項目 三、使用教程 一、系統版本要求&#xff1a; linux ubuntu 22.042核4G 40GB&#xff08;或以上&#xf…

什么是回歸測試?什么時候需要做回歸測試?

回歸測試詳解&#xff1a;概念、時機與最佳實踐 1. 什么是回歸測試&#xff1f; 回歸測試&#xff08;Regression Testing&#xff09; 是指在對軟件進行修改&#xff08;如修復Bug、新增功能、優化代碼&#xff09;后&#xff0c;重新執行已有測試用例&#xff0c;以確保&am…

Android-Layout Inspector使用手冊

Layout Inspector Android Layout Inspector 是 Android Studio 中用于調試應用布局的工具 啟動方法&#xff1a; 通過下載Layout Inspector插件&#xff0c;在 “View - Tool Windows - Layout Inspector” 或 “Tools - Layout Inspector” 啟動。 主要界面區域&#xff1a…

postgreSQL 數據庫字典導出工具

為滿足項目驗收文檔需求&#xff0c;開發了一個基于Python的PostgreSQL數據字典導出工具。 廢話不多說&#xff0c;先分享一下 軟件截圖 數據字典文件樣式,文件格式為docx 軟件源碼 基于python開發&#xff0c; import tkinter as tk from tkinter import ttk, messagebox …

【AI解析】 CppNumericalSolvers:一個現代化的 C++17 純頭文件優化庫 示例代碼解析

一個輕量級僅頭文件的 C17 庫&#xff0c;提供針對&#xff08;無&#xff09;約束非線性函數及表達式模板的數值優化方法 https://github.com/PatWie/CppNumericalSolvers CppNumericalSolvers 庫 include 目錄下的文件及其功能說明 根目錄文件 文件名功能說明function.h(主函…

第3篇:Gin的請求處理——獲取客戶端數據(Gin文件上傳,接收JSON數據)

引言&#xff1a;Context是Gin的"瑞士軍刀" 在Gin框架中&#xff0c;Context就像一把多功能的瑞士軍刀&#xff0c;封裝了所有與請求相關的操作。新手開發者常犯的錯誤是只把它當作參數傳遞的工具&#xff0c;卻忽略了它強大的數據處理能力。 想象一個場景&#xf…

啟動hardhat 項目,下載依賴的npm問題

Windows 環境 Hardhat 依賴安裝問題排查指南 &#x1f6a8; 問題描述 在 Windows 環境下安裝 Hardhat 項目依賴時&#xff0c;遇到以下錯誤&#xff1a; npm ERR! code ETARGET npm ERR! notarget No matching version found for nomicfoundation/edr^0.11.1. npm ERR! nota…

大數據里的拉鏈表:數據版本管理的時間膠囊

哈嘍各位數據打工人&#xff5e;今天咱們來聊聊大數據領域一個超實用的神器 ——拉鏈表&#xff01;聽起來像時尚單品&#xff1f;NoNoNo&#xff0c;它可是數據倉庫里管理歷史數據的寶藏工具? 就算你是剛入門的小白也能輕松聽懂&#xff0c;咱們全程少玩比喻多講人話&#xf…

docker執行yum報錯Could not resolve host: mirrorlist.centos.org

解決辦法&#xff1a; -- 依次執行以下命令cd /etc/yum.repos.d/sed -i s|#baseurlhttp://mirror.centos.org|baseurlhttp://vault.centos.org|g /etc/yum.repos.d/CentOS-*sed -i s/mirrorlist/#mirrorlist/g /etc/yum.repos.d/CentOS-*yum update -yecho "export LC_ALL…