首页 > 编程语言 >.Net:对接微信小程序进行授权操作

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

时间:2023-06-08 14:07:20浏览次数:52  
标签:myStreamReader code string 微信 对接 request 接口 session Net

原来的写法,使用node.js

.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是否一直用的同一个,授权接口基本就这样,可能还会存在本地测试接口可以走通但是小程序却走不通的情况,发布到服务器使用域名去访问一下试试说不定就可以了。



标签:myStreamReader,code,string,微信,对接,request,接口,session,Net
From: https://blog.51cto.com/u_16151095/6439414

相关文章

  • 微信小程序开发笔记 进阶篇⑤——getPhoneNumber 获取用户手机号码(基础库 2.21.2 之前
    文章目录一、前言二、前端代码wxml三、前端代码js四、后端java五、程序流程六、参考一、前言微信小程序开发笔记——导读大部分微信小程序开发者都会有这样的需求:获取小程序用户的手机号码。但是,因为小程序用户的手机号码属于重要信息,为了安全,所以需要如下一系列较为复杂的方法和......
  • 微信小程序开发笔记 进阶篇⑥——getPhoneNumber 获取用户手机号码(基础库 2.21.2 之后
    文章目录一、前言二、前端代码wxml三、前端代码js四、后端java五、程序流程六、参考一、前言微信小程序开发笔记——导读大部分微信小程序开发者都会有这样的需求:获取小程序用户的手机号码。但是,因为小程序用户的手机号码属于重要信息,为了安全,所以需要如下一系列较为复杂的方法和......
  • 体验了【微信问一问】的新功能
    hello,伙伴们,我是索奇相信很多伙伴们已经体验了【微信问一问】的新功能但也有一些伙伴们还不知道如何开启使用,现在并不是所谓的仅内测可用(互联网上很多人说搜一搜都说是内测,一跟十,十跟百,不如自己探索验证一下,目前是否仅内测可用)两种方法开启问一问可以通过「问一问」种子用户招募进......
  • c#简单获取微信openid
    前端js:点击查看代码 varlocal=encodeURIComponent(window.location.href); varappid=$("#appId").text();//公众号 varurl='https://open.weixin.qq.com/connect/oauth2/authorize?appid='+appid+'&redirect_uri='+local+&......
  • Kubernetes 集群管理:Kurator or Kubespray
    摘要:Kubespray和Kurator就是这类开源工具的典型代表。本文将对这两款工具进行比较。本文分享自华为云社区《Kubernetes集群管理:KuratororKubespray-华为云云原生团队》,作者:云容器大未来。随着云计算技术的飞速发展,Kubernetes已经成为了容器编排领域的事实标准。用户可......
  • net-core-PeriodicTimer
    一在.NET6中引入了新Timer:System.Threading.PeriodicTimer,它和之前的Timer相比,最大的区别就是新的PeriodicTimer事件处理可以方便地使用异步,消除使用callback机制减少使用复杂度。publicclassBackgroundTask{privateTask?_timerTask;privatereadonlyPeriodic......
  • 使用Laf云平台,两步将ChatGPT接入微信公众号
    使用Laf云平台,两步将ChatGPT接入微信公众号最近很火的ChatGPT可以说已经满大街可见了,到处都有各种各样的体验地址,有收费的也有免费的,总之是五花八门、花里胡哨。所以呢,最近我就在研究怎么才能方便快捷的体验到ChatGPT的强大功能,其中一个就是:把ChatGPT接入公众号。如下图(成果图):......
  • .NET代码审计XSS篇-Html.Raw
    在.NETMVC项目中,默认创建的视图,都是以cshtml为后缀的Razor视图,这种视图通常以.cshtml文件扩展名,Razor视图引擎对自动对输出的内容进行HTML编码,这些字符会被编码成HTML实体,如图1如果确实某些场景需要在视图中显示原始HTML内容,而不进行HTML编码,可以使用Html.Raw方法。Html.Raw标......
  • 微信扫描领取“完整版的Python全套学习资料”的骗子
    网上搜Python学习资料,看到过很多次所谓“这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】”这些领资料的都是骗人的,扫了微信会问你杂七杂八的问题:python基础怎样,为什么学python,安装了pycharm没有等等。只......
  • net core -Lock
    一读写锁publicasyncTask<byte[]>GetAsync(stringkey,CancellationTokentoken=newCancellationToken()){_cacheLock.EnterReadLock();try{returnawait_cache.GetAsync(GetCacheKey(key),t......