成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

uniapp+.net core實現微信小程序獲取手機號功能

瀏覽:516日期:2022-06-08 13:03:35
目錄
  • 獲取手機號
    • 注意:
  • 使用方法
    • 前端
      • template
      • js
    • 后端
      • appsetting配置
      • Startup.cs
      • GlobalContext.cs
      • 調用
    • 獲取截圖

      獲取手機號

      從基礎庫 2.21.2 開始,對獲取手機號的接口進行了安全升級,以下是新版本接口使用指南。( 舊版本接口 目前可以繼續使用,但建議開發者使用新版本接口,以增強小程序安全性)

      因為需要用戶主動觸發才能發起獲取手機號接口,所以該功能不由 API 來調用,需用 button 組件的點擊來觸發。另外,新版本接口 不再 需要提前調用 wx.login 進行登錄。

      注意:

      • 目前該接口針對非個人開發者,且完成了認證的小程序開放(不包含海外主體)。需謹慎使用,若用戶舉報較多或被發現在不必要場景下使用,微信有權永久回收該小程序的該接口權限;
      • 在使用該接口時,用戶可使用微信綁定手機號進行授權,也添加非微信綁定手機號進行授權。若開發者僅通過手機號作為業務關聯憑證,在重點場景可適當增加短信驗證邏輯。

      使用方法

      需要將 button 組件 open-type 的值設置為 getPhoneNumber ,當用戶點擊并同意之后,可以通過 bindgetphonenumber 事件回調獲取到動態令牌 code ,然后把 code 傳到開發者后臺,并在開發者后臺調用微信后臺提供的 phonenumber.getPhoneNumber 接口,消費 code 來換取用戶手機號。每個 code 有效期為5分鐘,且只能消費一次。

      注: getPhoneNumber 返回的 codewx.login 返回的 code 作用是不一樣的,不能混用。

      前端

      template

      使用getphonenumber獲取回調code

      //小程序寫法<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>//uni-app寫法<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">微信用戶一鍵登錄</button>

      js

      調用服務器的url,消費 code 來換取用戶手機號

      methods: {    getPhoneNumber: function(e) {var that = this;var userPhone = uni.getStorageSync("userPhone");if(userPhone != ""){    getApp().globalData.userPhone = userPhone;    uni.navigateTo({url: "personal"    });    return;}if (e.detail.errMsg == "getPhoneNumber:ok") {    //端口號是由后端服務器生成    wx.request({url: "后端服務URL",data: {    code: e.detail.code},method: "get",success: function(res) {    uni.setStorageSync("userPhone", res.data);    getApp().globalData.userPhone = res.data;    uni.navigateTo({url: "personal"    });},fail: function(res) {    console.log(res.errMsg)}    })}    }}

      后端

      后端使用.net core配置api

      appsetting配置

      "Wx": {    "appid": "",    "secret": "",    "baseurl": "https://api.weixin.qq.com/",    "getToken": "cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}",    "getuserphonenumber": "wxa/business/getuserphonenumber?access_token={0}"  }

      Startup.cs

      注冊HttpClient調用微信API

      public void ConfigureServices(IServiceCollection services) {       services.AddHttpClient("WxClient", config =>     {config.BaseAddress = new Uri(Configuration["Wx:baseurl"]);config.DefaultRequestHeaders.Add("Accept", "application/json");    });}
      public void Configure(IApplicationBuilder app, IWebHostEnvironment env){   GlobalContext.HttpClientFactory = app.ApplicationServices.GetService<IHttpClientFactory>();}

      GlobalContext.cs

      獲取token方法與獲取手機號方法,通過HTTPClient調用獲取Token方法,用Token和Code調用 getuserphonenumber獲取用戶手機號

      using System;using System.Reflection;using System.Text;using Microsoft.AspNetCore.Hosting;using Microsoft.Extensions.Configuration;using Microsoft.Extensions.DependencyInjection;using Microsoft.AspNetCore.StaticFiles;using Microsoft.Extensions.Hosting;using Microsoft.AspNetCore.Http;using System.Net.Http;using Newtonsoft.Json;namespace YiSha.Util{    public class GlobalContext    {public static IHttpClientFactory HttpClientFactory { get; set; }public static IConfiguration Configuration { get; set; }public static string Token { get; set; }public static DateTime TimeOutDate { get; set; }/// <summary>/// 獲取Token/// </summary>/// <returns>Item1 Token;Item2 是否成功</returns>public static Result GetToken(){    //判斷Token是否存在 以及Token是否在有效期內    if (string.IsNullOrEmpty(Token) || TimeOutDate > DateTime.Now)    {//構造請求鏈接var requestBuild = Configuration["Wx:getToken"];requestBuild = string.Format(requestBuild,  Configuration["Wx:appid"],  Configuration["Wx:secret"]       );using (var wxClient = HttpClientFactory.CreateClient("WxClient")){    var httpResponse = wxClient.GetAsync(requestBuild).Result;    var dynamic = JsonConvert.DeserializeObject<dynamic>(  httpResponse.Content.ReadAsStringAsync().Result  );    if (dynamic.errmsg == null)//刷新Token    {Token = dynamic.access_token;var expires_in = Convert.ToDouble(dynamic.expires_in);TimeOutDate = DateTime.Now.AddSeconds(expires_in);return new Result(Token);    }    else    {return new Result(errMsg:dynamic.errmsg);    }}    }    else    {return new Result(Token);     }}public static Result GetUserPhoneNumber(string code){    var token = GetToken();    if(!token.isSuccess)    {return token;    }    //構造請求鏈接    var requestBuild = Configuration["Wx:getuserphonenumber"];    requestBuild = string.Format(requestBuild, token.data);    //建立HttpClient    using (var wxClient = HttpClientFactory.CreateClient("WxClient"))    {string content = $"{{\"code\":\"[code]\"}}";byte[] data = Encoding.UTF8.GetBytes(content);var bytearray = new ByteArrayContent(data);var httpResponse = wxClient.PostAsync(requestBuild, bytearray).Result;var dynamic = JsonConvert.DeserializeObject<dynamic>(     httpResponse.Content.ReadAsStringAsync().Result     );if (dynamic.errmsg == "ok")    return new Result(dynamic.phone_info.phoneNumber.ToString());else    return new Result(errMsg: dynamic.errmsg.ToString());    }}/// <summary>///  返回消息/// </summary>public class Result{    public Result()    {    }    /// <summary>    /// 正確    /// </summary>    /// <param name="data"></param>    public Result(string data)    {this.data = data;this.isSuccess = true;    }    /// <summary>    /// 錯誤    /// </summary>    /// <param name="errMsg"></param>    /// <param name="isSuccess"></param>    public Result(string errMsg,bool isSuccess = false)    {this.errMsg = errMsg;this.isSuccess = isSuccess;    }    public string data { get; set; }    public string errMsg { get; set; }    public bool isSuccess { get; set; }}    }}

      調用

      [HttpGet]public string GetPhone(string code){    var phone = GlobalContext.GetUserPhoneNumber(code);    if(!phone.isSuccess)    {//錯誤處理    }    return phone.data;}

      獲取截圖

      文檔傳送門:

      獲取手機號: https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html

      到此這篇關于uniapp+.net core實現微信小程序獲取手機號的文章就介紹到這了,更多相關uniapp .net core小程序獲取手機號內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

      標簽: ASP.NET
      成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
      亚洲黄色录像片| 日韩欧美国产一区在线观看| 日韩欧美国产午夜精品| 久久99国产乱子伦精品免费| 久久国产精品久久精品国产| 亚洲欧美日韩在线不卡| 伊伊综合在线| 亚洲色图欧美在线| 亚洲精一区二区三区| 自拍偷拍国产精品| 欧美三级午夜理伦三级中文幕| 26uuu国产一区二区三区| 国产九色sp调教91| 欧美一区二区黄色| 成人黄色av电影| 制服丝袜成人动漫| 国产高清视频一区| 精品久久久久久久久久久院品网| 国产精品亚洲视频| 日韩欧美一区二区免费| 成人白浆超碰人人人人| 久久影院视频免费| 欧美1区视频| 欧美激情综合在线| 好吊色欧美一区二区三区视频| 国产精品成人一区二区三区夜夜夜| 亚洲福利精品| 亚洲高清免费观看高清完整版在线观看| 亚洲一区精品视频| 麻豆精品国产传媒mv男同 | 黄色国产精品| 亚洲视频中文字幕| 久久精品日韩| 国产一区二区三区四区五区入口| 日韩免费观看高清完整版| av一区二区不卡| 国产精品美女一区二区在线观看| 黑人一区二区三区四区五区| 亚洲男人的天堂在线观看| 欧美亚洲三级| 老司机精品视频导航| 884aa四虎影成人精品一区| 成人免费av网站| 国产精品久久久久久久久图文区| 亚洲国产成人不卡| 日韩经典一区二区| 日韩亚洲欧美在线观看| 色综合咪咪久久| 一区二区三区免费观看| 欧美日韩一区高清| 欧美一区影院| 亚洲成人av福利| 欧美精品第1页| 99久久er热在这里只有精品66| 日韩美女久久久| 欧美伊人久久大香线蕉综合69 | 免费在线一区二区| 精品一区二区三区香蕉蜜桃| 日韩视频免费观看高清完整版在线观看| 99久久777色| 亚洲精品国产精华液| 欧美日韩一区二区三区免费看| 91原创在线视频| 亚洲一级二级三级在线免费观看| 欧美日韩一区二区三区四区五区| 99国产精品国产精品久久| 综合网在线视频| 欧美美女喷水视频| 国产尤物精品| 免费人成精品欧美精品| 久久久久久亚洲综合| 麻豆av一区二区三区| 成人一区二区三区在线观看| 综合久久综合久久| 欧美精品亚洲一区二区在线播放| 欧美精品日本| 日本在线观看不卡视频| 久久影院午夜片一区| 午夜在线a亚洲v天堂网2018| 国产成人av电影免费在线观看| 中文字幕一区二区不卡| 欧美视频在线观看一区二区| 欧美日韩在线精品| 久久精品999| 国产精品毛片a∨一区二区三区| 色综合久久久久久久久| 91视频国产观看| 蜜桃av一区二区三区| 国产欧美日韩不卡免费| 欧美性大战久久| 韩日视频一区| 国产精品亚洲第一| 亚洲一区二区三区四区在线观看| 日韩欧美一级二级| 午夜一级在线看亚洲| 91在线精品秘密一区二区| 丝袜美腿亚洲一区| 中文字幕久久午夜不卡| 欧美性生活久久| 欧美日韩国产成人精品| 久久er99热精品一区二区| 国产精品高潮久久久久无| 欧美老肥妇做.爰bbww视频| 狠狠入ady亚洲精品| 黑人巨大精品欧美黑白配亚洲| 亚洲欧美日韩国产手机在线| 日韩精品一区二区三区在线播放| 美女诱惑一区| 国内外成人免费视频| 国产精品99久久久久久久女警| 一区二区久久久| 久久久亚洲综合| 欧美日韩视频在线第一区| 99热精品在线观看| 成人av网在线| 免费久久99精品国产| 亚洲摸摸操操av| 日韩视频一区在线观看| 久久久久久色| 黑人一区二区| av在线不卡免费看| 极品少妇一区二区三区精品视频| 一区二区三区四区激情| 国产区在线观看成人精品| 91精品久久久久久久99蜜桃| 久久一区视频| 中文久久精品| 国产精品hd| 成人av在线电影| 黄页网站大全一区二区| 三级不卡在线观看| 亚洲免费观看高清完整版在线| 久久久www成人免费毛片麻豆| 欧美美女直播网站| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 日韩福利电影在线观看| 中文字幕五月欧美| 久久久久久一级片| 日韩精品一区二区三区视频播放 | 91视频一区二区三区| 国产精品1024久久| 美日韩一区二区三区| 亚洲电影一区二区| 亚洲伦在线观看| 国产精品久久久久久久久搜平片| 精品免费日韩av| 欧美疯狂做受xxxx富婆| 欧美亚洲一区三区| 国产精品综合色区在线观看| 精品电影一区| 欧美日韩在线精品| 欧美福利视频| a亚洲天堂av| 成人av一区二区三区| 国产sm精品调教视频网站| 国产原创一区二区| 激情深爱一区二区| 老鸭窝一区二区久久精品| 久久精品99久久久| 精品一区二区三区在线观看| 精品一区二区久久| 激情五月婷婷综合网| 久久国产欧美日韩精品| 蜜臀va亚洲va欧美va天堂| 美女mm1313爽爽久久久蜜臀| 青青青爽久久午夜综合久久午夜| 免费在线成人网| 久久se精品一区精品二区| 精品一区二区三区影院在线午夜| 精品在线观看免费| 国产精品69毛片高清亚洲| 国产麻豆欧美日韩一区| 国产美女主播视频一区| 国产一区二区三区黄视频| 国产在线精品国自产拍免费| 狠狠色丁香婷婷综合久久片| 国产一区二区调教| 国产白丝精品91爽爽久久| 风间由美一区二区av101| 国产精品一区二区三区四区| 国产福利一区二区三区视频| 丁香婷婷综合色啪| 不卡的av在线| 牛牛国产精品| 海角社区69精品视频| 伊人成人网在线看| 9久re热视频在线精品| 亚洲一区影院| 色欧美片视频在线观看| 欧美日韩精品欧美日韩精品| 制服丝袜中文字幕一区| 日韩精品一区二区三区在线观看 | 国产**成人网毛片九色| 成人成人成人在线视频| 欧美va天堂| 91久久极品少妇xxxxⅹ软件| 午夜在线精品偷拍| 欧美系列一区二区| 日韩亚洲欧美综合| 日本一区二区电影|