.NET6使用微信小程序授权登录,获取手机号

这篇具有很好参考价值的文章主要介绍了.NET6使用微信小程序授权登录,获取手机号。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.在appsettings配置你的小程序配置信息

  //微信小程序信息配置
  "WechatConfig": {
    "appid": "", //小程序ID
    "secret": "" //小程序秘钥
  },

2.请求接口时先获取Access_token

        #region 获取小程序的Access_token
        public object GetAccess_token(string appid, string secret)
        {
            string strUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret;
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(strUrl);
            req.Method = "GET";
            req.ContentType = "textml;charset=UTF-8";
            HttpWebResponse response = (HttpWebResponse)req.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
            string jsonData = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();

            string jsonSr = jsonData;
            JObject jsons = JObject.Parse(jsonSr);
            string accesstoken = jsons["access_token"].ToString();
            return accesstoken;
        }
        #endregion

3.授权时获取手机号

        #region 获取微信绑定手机号
        public  object GetPhoneNumber(string code, string appid, string secret)
        {
            string errCode = "";
            try
            {
                var accesstoken = GetAccess_token(appid, secret);
                string serviceAddress = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + accesstoken;

                JObject codes = new JObject();
                codes["code"] = code;
                string sendData = JsonConvert.SerializeObject(codes);
                //换成Post请求方式
                string jsonString = UrlPost(sendData, serviceAddress);
                dynamic model = JToken.Parse(jsonString) as dynamic;
                JObject json = JObject.Parse(jsonString);
                errCode = json["errcode"].ToString();
                string purePhoneNumber = json["phone_info"]["phoneNumber"].ToString();
                //签发token
                //string token;
                //_authenservice.IsAuthenticated(code, out token);
                return new { Code = 200, Msg = "获取成功", Tel = purePhoneNumber};
            }
            catch (Exception e)
            {
                return new { Code = 0, Msg = "获取失败" + e.Message };
            }
        }
        #endregion

4.微信接口要求必须使用Post请求方法

 #region 提交Post请求
        /// <summary>
        /// 提交Post请求
        /// </summary>
        /// <param name="parameterData">参数集合</param>
        /// <param name="serviceUrl">URL</param>
        /// <param name="ContentType"></param>
        /// <param name="Accept"></param>
        /// <returns></returns>
        public static string UrlPost(string parameterData, string serviceUrl, string ContentType = "application/json", string Accept = "application/json")
        {
            //先根据用户请求的uri构造请求地址
            //string serviceUrl = string.Format("{0}/{1}", this.BaseUri, uri);

            //创建Web访问对象
            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(serviceUrl);
            //把用户传过来的数据转成“UTF-8”的字节流
            byte[] buf = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(parameterData);

            myRequest.Method = "POST";
            //myRequest.Accept = "application/json";
            //myRequest.ContentType = "application/json";  // //Content-Type: application/x-www-form-urlencoded 
            myRequest.AutomaticDecompression = DecompressionMethods.GZip;
            myRequest.Accept = Accept;
            //myRequest.ContentType = ContentType;
            myRequest.ContentType = "application/json; charset=UTF-8";
            myRequest.ContentLength = buf.Length;
            myRequest.MaximumAutomaticRedirections = 1;
            myRequest.AllowAutoRedirect = true;

            //myRequest.Headers.Add("content-type", "application/json");
            //myRequest.Headers.Add("accept-encoding", "gzip");
            //myRequest.Headers.Add("accept-charset", "utf-8");

            //发送请求
            Stream stream = myRequest.GetRequestStream();
            stream.Write(buf, 0, buf.Length);
            stream.Close();

            //通过Web访问对象获取响应内容
            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
            //通过响应内容流创建StreamReader对象,因为StreamReader更高级更快
            StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
            //string returnXml = HttpUtility.UrlDecode(reader.ReadToEnd());//如果有编码问题就用这个方法
            string returnData = reader.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾
            reader.Close();
            myResponse.Close();
            return returnData;
        }
        #endregion

//小程序官方文档
https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/user-info/phone-number/getPhoneNumber.html文章来源地址https://www.toymoban.com/news/detail-650017.html

到了这里,关于.NET6使用微信小程序授权登录,获取手机号的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp微信小程序授权登录并获取手机号

    新版:前端要授权两次,一次获取用户信息授权码code,另外一次获取用户手机授权码code,全部传给后端。后端通过用户信息授权码获取openid,通过手机授权码获取手机号码。老版:前端传给后端授权码code和用户手机授权回调 里的iv和encryptedData给后端,后端通过code获取ope

    2024年02月11日
    浏览(69)
  • 微信小程序:登录授权,根据手机号获取凭证,获取用户手机号

    1.微信小程序授权 controller 层代码 wxUtils 工具类 2.微信小程序,用户手机号获取 微信小程序,根据code(code为手机号获取凭证)获取用户加密手机号 获取用户手机号方法

    2024年02月14日
    浏览(46)
  • 微信小程序授权登录(含获取基本信息及绑定的手机号)

    1、授权获取微信个人信息 2、调用 wx.login() 获取临时登录凭证code 3、用code调用接口换取用户唯一标识openId、用户在微信开放平台账号下的唯一标识unionId和会话密钥session_key (1)前端获取 注意点 :正常开发中不会通过这种方法获取,会通过后台获取调用微信公众平台接口获

    2024年02月09日
    浏览(37)
  • 微信小程序实现登录授权,并将获取到的用户授权信息存储到数据库中

    官方开发文档 注意:在实现授权登录时,不要使用测试号进行 wx.getUserProfile使用文档 config文件代码如下 路由模块 主要代码(如果不想多个文件,可以将wxuserHandle.wxuser这个位置内容替换为exports.wxuser的内容) 注意: 在返回token的字符串拼接时,Bearer 后面必须有一个空格 数据

    2024年02月10日
    浏览(42)
  • 基于uniapp+java实现微信小程序无感登录,授权手机号登录,获取昵称头像,获取定位信息

    使用uniapp开发微信小程序,避免不了微信登录。但自动微信2022年升级了api版本后,不再允许返回昵称和头像信息,所以才出现无感登录或授权手机号登录。实现方式大同小异。 java后端所需maven 前端实现代码: 由于使用uni.login并不需要用户授权,所以能做到无感登录。 后端

    2024年02月16日
    浏览(45)
  • 微信小程序获取用户的openid以及授权登录拿到用户头像及姓名

    在微信小程序中,往往需要将用户信息录入自己的数据库中,就得有一个唯一标记区分用户,这个标记就是openid。 我这里用云函数的方式,比较简单 先创建一个名为getOPenid的云函数  在云函数中获取微信调用上下文cloud.getWXContext  可选择性的返回openid、appid、unionid等,可详细查

    2024年02月12日
    浏览(44)
  • 微信小程序 - 实现手机号登录--授权并获取手机号保存至本地

    微信官方文档 | 获取手机号 这是服务端的  这是我们前端获取手机号需要给接口传递的两个参数    注意: 参数一: 获取access_token需要用到小程序密钥,这个需要从 服务端获取 ,也就是需要请求后端接口获取access_token,千万不要将小程序密钥写在前端代码中, 必须 要从服

    2024年02月03日
    浏览(43)
  • 微信小程序授权登录wx.getUserProfile获取不到昵称及头像解决方案

    半年前做的个小程序,更新了二个文字,重新上传审核通过,悲剧了,新用户的昵称全部变为微信用户,头像全部变为默认头像,查了半天代码没找到原因,相当头大,搜了一下文档,尴尬了,11月9号新更新的规则,不再返回昵称和头像值....需要用头像昵称获取能力去触发获

    2024年02月11日
    浏览(31)
  • 2023最新使用微信小程序完成一键授权登录

    前言: 使用开发工具:小程序。在我这一篇已经详细介绍了小程序的安装介绍今天我给大家带来的是微信的一键授权登录,保存用户信息,退出的功能!!!希望看完了这篇博客能够对你有帮助!!! 效果: 登录获取到用户信息: 思路 :点击按钮获取到用户信息(调用方

    2024年02月08日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包