手机版

MVC微信网页授权获取用户OpenId

时间:2021-09-07 来源:互联网 编辑:宝哥软件园 浏览:

最近开发微信公众平台,做下记录,以前也开发过,这次开发又给忘了,搞了半天,还是做个笔记为好。

注意框架为手动音量调节开发微信公众平台。场景为,在模板页中获取用户openid,想要进行验证的页面,集成模板页就可以了。

在_Layout.cshtml中加入如下代码

head meta charset=' utf-8 '/meta name=' viewpar ' content=' width=device-width,initial-scale=1.0 ' title @ viewpag .标题-我的ASP。网申请/标题@风格。呈现(' ~/Content/CSS ')@脚本render(' ~/bundle/modernizr ')@ { var code=HttpContext .当前。请求['代码'];Log.logmsg(代码);字符串urlpath=HttpContext .当前。请求。网址。绝对正确。tostring();ViewBag.at=AdminUtil .GetOpenID(urlpath,代码);}/head类管理中加入GetOpenID方法

#地区获取OpenID ///summary ///获取OpenID////摘要公共静态字符串GetOpenID(字符串重定向_url,字符串代码){ string AppID=WXModel .AppID字符串AppSecret=WXModel .应用秘密字符串openid=openid=WXApi .GetOpenID(AppID,redirect_url,代码,AppSecret);返回openid} #endregion类WXApi中加入GetOpenID方法

#地区获取OpenId ///summary ///获取OpenId////summary public static string GetOpenID(string appid,string redirect_url,string code,string screct){ string strJson=' ';如果(字符串IsNullOrEmpty(代码)){ redirect _ url=HttpUtility .UrlEncode(重定向_ URL);HttpContext .当前。响应。重定向(字符串。格式(' https://打开。微信。QQ。com/connect/oauth 2/authorize?appid={ 0 } redirect _ uri={ 1 } response _ type=code scope=SNS API _ base state={ 2 } #微信_重定向',appid,重定向_url,新的Random().下一个(1000,200000)。ToString()));} else { strJson=HttpRequestUtil .RequestUrl(字符串. format(' https://API。微信。QQ。com/SNS/oauth 2/access _ token?appid={ 0 } secret={ 1 } code={ 2 } grant _ type=authorization _ code ',appid,screct,code));}返回工具GetJsonValue(strJson,‘open id’);} #endregionpublic静态类WXModel { public static string access _ token;公共静态字符串AppID公共静态字符串AppSecret} ///摘要///工具类////摘要公共类工具{ #地区获取Json字符串某节点的值///摘要///获取Json字符串某节点的值////摘要公共静态字符串GetJsonValue(string jsonStr,string key) { string result=string .空的;if(!字符串IsNullOrEmpty(jsonStr)){ key=' \ ' key .修剪("")"\";int index=jsonStr .(键)键的索引。长度1;如果(索引键。长度1) { //先截逗号,若是最后一个,截"}"号,取最小值int end=jsonStr .IndexOf(',',index);if (end==-1) { end=jsonStr .IndexOf('} ',index);}结果=jsonStr .子串(索引,结束索引);结果=结果修剪(新字符[] {""、""、"\"});//过滤引号或空格} }返回结果;} # endregion }公共类HttpRequestUtil { #region请求Url,不发送数据///摘要///请求Url,不发送数据////汇总公共静态字符串RequestUrl(字符串url) { return RequestUrl(url,' POST ');} #endregion #region请求Url,不发送数据///摘要///请求Url,不发送数据////摘要公共静态字符串RequestUrl(字符串Url,字符串方法){ //设置参数HttpWebRequest请求=WebRequest .将(网址)创建为HttpWebRequestCookieContainer CookieContainer=new CookieContainer();请求CookieContainer=CookieContainer;请求AllowAutoRedirect=true请求。方法=方法;请求内容类型=' text/html ';请求。标题。添加('字符集,' utf-8 ');//发送请求并获取相应回应数据HttpWebResponse请求GetResponse()作为HttpWebResponse//直到请求GetResponse()程序才开始向目标网页发送邮政请求流响应流=响应GetResponseStream();StreamReader sr=新的StreamReader(响应流,编码。默认);//返回结果网页(html)代码字符串内容=Sr . ReadToEnd();返回内容;} #endregion }注意:需要在微信公众平台中设置授权回调域

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

版权声明:MVC微信网页授权获取用户OpenId是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。