0
点赞
收藏
分享

微信扫一扫

.Net:对接微信小程序进行授权操作

原来的写法,使用node.js

.Net:对接微信小程序进行授权操作_.Net

    其实就是小程序端访问接口,传来一个code参数,接下来后台拿到code之后可以根据code、appid、secret获取session_key和openid,拿到这两个之后后端的工作基本就结束了,可以参考官网

接口迁移之后的写法,使用.Net,代码就怎么简单怎么来

        /// <summary>
        /// 小程序授权
        /// </summary>
        /// <param name="code"></param>
        /// <returns></returns>
        [HttpPost("reqsession")]
        public Response reqsession(wxcodedto code)
        {
            Response res = new Response();
            string AppSecret = "Secret";
            string AppId = "Appid";
            string OauthUrl = "https://api.weixin.qq.com/sns/jscode2session?appid=" + AppId + "&secret=" + AppSecret + "&js_code=" + code.code + "&grant_type=authorization_code";//序列化解析数据
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(OauthUrl);
            request.Method = "GET";
            request.ContentType = "text/html;charset=utf-8";
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, System.Text.Encoding.UTF8);
            string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();
            var s1 = JsonConvert.DeserializeObject<WxOauthModle>(retString); 
            res.Message = new { session_key = s1.session_key, openid = s1.openid};
            return res;
        }


在测试的过程中可能会遇到"errcode":40163,"errmsg":"code been used,"这个问题,ok,继续参考官网,

.Net:对接微信小程序进行授权操作_授权_02

这里可以看一下在测试接口的时候接口传的code是否一直用的同一个,授权接口基本就这样,可能还会存在本地测试接口可以走通但是小程序却走不通的情况,发布到服务器使用域名去访问一下试试说不定就可以了。



举报

相关推荐

0 条评论