关于MVC微信开发遇到的那些坑。

首先让我吐槽下:微信就是一个渣渣,提供的开发文档都是坑。完全就是给他填坑  坑填完了 也就出来了。 先说下注意事项 然后提供源码吧。

坑1:  Response.Redirect("https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appid + "&redirect_uri=http://www.gsg.cq.cqtiandu.com/home/index&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"); 这个是第一步,估计很多人都已经死在这里了。 注意第一个必须是HTTPS 第二个 回调连接 是http 如果你填写https 也就在微信浏览器打不开了。

坑2:这个是一个大坑大坑。 坑1的作用是拿出来code, 然后 var url = string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appid, appsecret, codes);来拿出openid 和access_token。 这个地方 code 可以拿出来,我TM secret不对都拿出来了,整了一天。就是返回40029(code 无效) 我用你给的code居然说code无效。然后找啊找啊 找不出来原因。肯定访问一次 而且肯定没超过5分钟。然后第二天就把密钥重置了下。然后可以了。这个SB 微信给了个错误的appsecret。(《!--  不是同事拉着我我就砍死MHT了 !--》)

坑3: 微信里面是不支持跳转的,在第一步拿取code的时候是有个 回调连接的,这个必须写到你的要展现页面,如果写到一个方法 方法在跳转页面。是跳不过去的。

坑4:其他小坑都是自己问题,只能说明微信不人性化给的接口太复杂。多次恶心。 下面给源码。

  public void Index1(string id)
        {

                //弹出授权页面(如在不弹出授权页面基础下未获得openid,弹出授权页面,提示用户授权)
                if (id == "1")
                {
                    Response.Redirect("https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appid + "&redirect_uri=http://www.gsg.cq.cqtiandu.com/home/index&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect");
                }
                else
                {
                    //不弹出授权页面
                    Response.Redirect("https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appid + "&redirect_uri=http://www.gsg.cq.cqtiandu.com/home/index&response_type=code&scope=snsapi_base&state=1#wechat_redirect");     

                }

        }// 这个测试的时候用 /地址/home/index1/0 生成二维码然后微信扫描。刚进入官网也是用这个 生成的连接
  public ActionResult Index()
        {
            string codes = Request["code"];
            string codes1 = Request.Form["code"];
            string codes2 = Request.RawUrl;
            var client = new System.Net.WebClient();
            client.Encoding = System.Text.Encoding.UTF8;
            var url = string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appid, appsecret, codes);
            HttpWebResponse hp = GetResponse(url);
            string htmlval = Html(hp);
            string logins = htmlval.Replace("{", "").Replace("}", "").Replace(‘"‘, ‘ ‘);
            string[] log = logins.Split(‘,‘);
            if (log.Length > 3)
            {
                string[] OK = log[3].Split(‘:‘);
                string openid = OK[1].ToString();
                string[] access = log[0].Split(‘:‘);
                string access_token = access[1].ToString();
                LoginUser lguser = new LoginUser
                {
                    UserId = openid.Trim(),
                    access_token = access_token
                };
                Session["Lguser"] = lguser;
                SqlParameter[] pms = {
                                     new SqlParameter("@openid",openid),
                                     new SqlParameter("@access_token",access_token)
                                     };
                MessasgeInfor mginfor = Datafun.Mgfunctioninfor("insert into tb_openid(openid,access_token) values(@openid,@access_token)", pms);
            }

            MessasgeData mgdata = Datafun.MgfunctionData("select * from tb_tel");
            ViewBag.tel = mgdata.Mgdata.Rows[0]["tel"];
            return View();
        }这个是首页 也就是拿取openid,我只要openid 所以就那个Openid 就是分割处理了

  

时间: 2024-10-12 17:11:25

关于MVC微信开发遇到的那些坑。的相关文章

C#开发微信.NET平台MVC微信开发 发送普通消息Demo以及收不到消息的问题

不得不说现在微信非常火,微信开放平台可以自己写程序跟用户交互,节省了前台开发成本,免去用户装客户端的烦恼.于是今天兴致来潮,想做一个试试. 首先找到了开发者文档,看了看,蛮简单的.(公众号早已申请,有兴趣可以关注看看:zyjsoft) 第一步(提供接口,供微信调用,由于是HTTP请求,于是我用MVC模式做了一个简单的接口): //认证接口 public ActionResult WeiXin(string signature, string timestamp, string nonce, st

.net MVC微信开发自定义View类型菜单时在相应控制器获取用户OpenID的问题

因为公司的项目在接收微信服务器Post过来的数据包是有指定的入口,所以在相应控制器里无法接收到微信服务器Post过来的数据,所以无法获得OpenID,也尝试过先在入口哪里解析获得OpenID再通过Session的方式传递过去的方法,但失败了,最后得出的方法是先在微信开发者中心进行网页授权设置相对应需要授权网页的域名,再把自定义菜单里View的URl节点按照相应的回调页链接设置就可以在所需要获得用户OpenID的控制器里通过获取回调页所携带的Code参数去调用 https://api.weixin

微信开发回复消息收不到的最大罪魁祸首,微信公众账号为什么回复消息不成功的原因解决办法

上一篇文章讲到如何配置微信开发,以及.NET平台使用MVC做一个小DEMO的流程,还有常见收不到消息的问题,本篇文章讲的是一个很容易让人忽略但又是很重要的问题导致用户收不到响应的消息原因. 上一篇文章链接:[C#开发微信.NET平台MVC微信开发 发送普通消息Demo以及收不到消息的问题] (如果你是通过搜索引擎进来的建议你看下上篇文章,说不定就解决你的问题了) 这个问题出在代码 首先我们的C#代码是这么写的: 1 //接收/回复 消息接口 2 [HttpPost] 3 public Actio

微信开发之架构设计

微信作为一款app,提供了友好的用户体验,在开发微信应用时,我们应该尽可能得让自己的网页像webapp一样.用户使用我们的网页,就好像在使用微信内置的app,这样用户才会喜欢我们的网站. 本文将讲解微信开发的前期准备,包括微信开发上的一些坑.架构上的设计.接口上需要注意的地方,全部来自自己的开发经验,如有不对,请指正. 微信开发的坑 1.微信授权 微信中涉及到了OAuth2.0网页授权,正因为这样,我理所当然的用这个接口来读取用户的基本信息,包括头像.用户名等,因为之前了解过淘宝的公众平台,大家

微信开发相关,了解一下

前言: 从微信公众号到现在的小程序,涉及微信开发方面的内容越来越多,工作大多时候是需要我们更了解微信开发的,比如老大说要做个什么东西,涉及到微信的,我们能立马想到方案或者提出可行性的分析吗?  因为微信开发有它自己的一套规则,有它自己的一套框架,有一定它带来的便利,也就有它带来的限制.  这篇文章,不写入门,不写开发流程,主要聊聊最近的一些调研和细节. 主要平台: 开放平台            (文档:微信开放平台文) 公众平台&小程序 (文档:微信公众平台文档&微信小程序文档) 商户平

C#/ASP.NET MVC微信公众号接口开发之从零开发(三)回复消息 (附源码)

C#/ASP.NET MVC微信接口开发文章目录: 1.C#/ASP.NET MVC微信公众号接口开发之从零开发(一) 接入微信公众平台 2.C#/ASP.NET MVC微信公众号接口开发之从零开发(二) 接收微信消息并且解析XML(附源码) 一.拼凑回复的XML字符串 微信被动回复的形式有一下六种: 1 回复文本消息 2 回复图片消息 3 回复语音消息 4 回复视频消息 5 回复音乐消息 6 回复图文消息 分别对应不同的XML形式,这里以文本消息和图文为例,读者举一反三其他的类似,不再赘述:

微信开发】【Asp.net MVC】-- 微信分享功能

[微信开发][Asp.net MVC]-- 微信分享功能 2017-01-15 09:09 by stoneniqiu, 12886 阅读, 15 评论, 收藏, 编辑 内嵌在微信中的网页,右上角都会有一个默认的分享功能.如下图所示,第一个为自定义的效果,第二个为默认的效果.实现了自定义的分享链接是不是更让人有点击的欲望?下面讲解下开发的过程. 一.准备,设置js接口安全域名 这需要使用微信的jssdk,先需要在微信公众号后台进行设置:公众号设置-->功能设置-->JS接口安全域名.打开这个页

C#/ASP.NET MVC微信公众号接口开发之从零开发(二) 接收微信消息并且解析XML(附源码)

文章导读: C#微信公众号接口开发之从零开发(一) 接入微信公众平台 微信接入之后,微信通过我们接入的地址进行通信,其中的原理是微信用户发送消息给微信公众账号,微信服务器将消息以xml的形式发送到我们的绑定的地址上,通过解析XML数据,获取到微信用户发送的消息,让根据微信消息(文本:关键字,图片,语音等等)回复XML格式的数据给微信服务器,微信服务器再将接收到的消息返回给用户微信. 我们所需要做的:接收消息和返回消息 一.创建实体类 首先看文档http://mp.weixin.qq.com/wi

使用delphi+intraweb进行微信开发1--微信平台接入

iw14.0.50来了,在新的版本中最吸引我的就是增加了完善的httphandler功能:终于可以直接在地址栏输入url打开iw功能页面了:可以自由使用EasyUI等js框架了:显示模式对话框也不再七绕八绕惹人烦了:呵呵,我感觉iw第一次接近主流web开发工具了! 兴奋过了,来尝试一下吧.其实iw的坑还是挺多的,虽然已经接近主流了,但是,后面慢慢都会说到… 1.新建一个iw工程,选择Stand Alone Server / Service,这种模式下进行开发是最理想的,调试很方便,正式发布时可以