小程序 获取微信 openid
小程序请求
wx.login({ //获取code success: function (res) { var code = res.code; //返回code var url="api/User/GetOpenID?code="+code;//请求地址 wx.request({ url: url, method:'Get', header: { 'content-type': 'application/json' },success:function(data){ console.log(data); } }) } })
后台GetOpenID接口,构造函数
private readonly IConfiguration _configuration; public UserController(WxAppDemoContext db, IConfiguration configuration) { _db = db; _configuration = configuration; }
appsettings.json 配置 appKey 和 appSecret
请求接口
[HttpGet] public ResultModel GetOpenID(string code) { var appKey = _configuration.GetSection("WxConfig:appKey").Value; var appSecret = _configuration.GetSection("WxConfig:appSecret").Value; var url = string.Format("https://api.weixin.qq.com/sns/jscode2session?appid={0}&secret={1}&grant_type=authorization_code&js_code={2}", appKey, appSecret, code); //请求---------------------------------------------------------- HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.ProtocolVersion = HttpVersion.Version11; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; request.Method = "GET"; request.ContentType = "application/json"; request.Timeout = 90000; request.Headers.Set("Pragma", "no-cache"); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream streamReceive = response.GetResponseStream(); StreamReader streamReader = new StreamReader(streamReceive, Encoding.UTF8); string strResult = streamReader.ReadToEnd(); //JObject data = JObject.Parse(strResult); //解析--------------------------------- var obj = JsonConvert.DeserializeObject(strResult); dynamic id = ((dynamic)obj).openid; dynamic key = ((dynamic)obj).session_key; string openid = id; string ssessionkey = key; return new ResultModel() { Success = true, Message = "", Data = new { openid = openid, session_key = ssessionkey } }; }