ASP.NET MVC开发接入微信公共平台

目录
  • 申请微信公共账号
  • 编写网站逻辑
  • 配置微信公共平台上的信息

申请微信公共账号

既然要接入微信公共平台,微信公共号是必须的(当然如果只是测试的话也可以申请微信公共平台接口测试账号),来这里微信公共平台 申请微信公共号(注:申请微信公共号不能用已绑定微信的邮箱),微信公共平台有自己的官方文档,官方文档有不少资料,可以多看看,开发者模式默认是关闭的,需要配置并启用,如下图:

URL即你的网站处理微信模块,必须是HTTP://开头的网站,笔者自己之前接入几天一直失败,最终发现是因为自己网站加密了用的是HTTPS,这个需要注意HTTPS网站是不可以的,Token是不会验证成功的,Token是自定义的不少于3个字符,EncodingAESKey会在加密消息时用到。

编写网站逻辑

编写微信接口测试代码,创建控制器,在控制器中编写代码,编写一个Action 方法用于微信服务器检验,Token是否配置成功或者接入成功。既然使用MVC,本人比较懒,懒得用Request.QueryStrings["echostr"] 这样的方法来一个一个获取参数,于是创建了一个Model,用来让微信服务器请求时参数自动适配到Model的相应属性,便于访问,便于写代码,在微信公共平台的官方文档中可以看到用到的参数

于是创建一个这样的Model

 public class WeChatRequestModel
    {
    public string signature { get; set; }
    public string timestamp { get; set; }
    public string nonce { get; set; }
    public string echostr { get; set; }
    }

接着看官方文档,接下来开始在控制器中编写代码,开始验证

根据校验流程开始编写代码,也可参考官方给出PHP代码编写相应的 .NET 代码

下面给出我的示例代码,在接入没成功之前参考许多别人的代码,不一定是最好的,你也可以参考一些别人的代码(这里说明一下,验证signature是否正确是从安全方面考虑的,你也可以将GET请求中的echostr参数直接输出,建议还是验证一下,毕竟安全更重要一些)

用来让微信服务器访问的Action 方法代码

配置微信公共平台上的信息

配置接入服务器,图中的参数都必须配置,Token要与网站代码中的Token保持一致,EncodingAESKey直接随机生成就可以,当然自己写也是可以的,只要你愿意,消息加解密方式,建议开发测试阶段选择明文模式以及兼容模式,正式上线使用后选择安全模式。最后第一项也是最重要的一项,URL,再次强调必须是HTTP网站,HTTPS是验证不成功的,如果是HTTPS能改成HTTP的话要改成HTTP,Url写成刚才我们编写的用于访问的验证的Action的Url地址,即要访问这个控制器时请求的URL地址,如: http://www.example.com/Home/Valid/

 public class HomeController :Controller
       {
          /// <summary>
          /// 定义Token,与微信公共平台上的Token保持一致
          /// </summary>
          private const string Token = "StupidMe";

           /// <summary>
           /// 验证签名,检验是否是从微信服务器上发出的请求
           /// </summary>
           /// <param name="model">请求参数模型 Model</param>
           /// <returns>是否验证通过</returns>
           private bool CheckSignature(Model.FormatModel.WeChatRequestModel model)
           {
               string signature, timestamp, nonce, tempStr;
               //获取请求来的参数
               signature = model.signature;
               timestamp = model.timestamp;
               nonce = model.nonce;
               //创建数组,将 Token, timestamp, nonce 三个参数加入数组
              string[] array = { Token, timestamp, nonce };
              //进行排序
               Array.Sort(array);
               //拼接为一个字符串
               tempStr = String.Join("", array);
               //对字符串进行 SHA1加密
               tempStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tempStr, "SHA1").ToLower();
               //判断signature 是否正确
               if (tempStr.Equals(signature))
              {
                   return true;
               }
               else
               {
                   return false;
               }
           }

           public void Valid(Model.FormatModel.WeChatRequestModel model)
           {
               //获取请求来的 echostr 参数
               string echoStr = model.echostr;
              //通过验证
               if (CheckSignature(model))
               {
                  if (!string.IsNullOrEmpty(echoStr))
                  {
                      //将随机生成的 echostr 参数 原样输出
                       Response.Write(echoStr);
                       //截止输出流
                       Response.End();
                   }
               }
           }
       }

以上就是ASP.NET MVC开发接入微信公共平台的详细内容,更多关于ASP.NET MVC接入微信公共平台的资料请关注我们其它相关文章!

(0)

相关推荐

  • ASP.NET Core集成微信登录

    工具: Visual Studio 2015 update 3 Asp.Net Core 1.0 1 准备工作 申请微信公众平台接口测试帐号,申请网址:(http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login).申请接口测试号无需公众帐号,可以直接体验和测试公众平台所有高级接口. 1.1 配置接口信息 1.2 修改网页授权信息 点击"修改"后在弹出页面填入你的网站域名: 2 新建网站项目 2.1 选择ASP.NET C

  • 微信公众号平台接口开发 获取access_token过程解析

    新建Asp.net MVC 4.0项目 WeChatSubscript是项目UI层 WeChatTools是封装操作访问公众号接口的一些方法类库 获取AccssToken 我们要的得到AccessToken,这是所有接口访问的基础,我们看看官方给出的接口调用文档 很简单明了,grant_type=client_credential,这是固定的不会变 appid与secret就是前面一章我叫大家记起来的那个认证口令数据. 下边我们来实现这个功能,新建WeCharBase.cs public cla

  • ASP.NET MVC5+EF6+EasyUI后台管理系统 微信公众平台开发之资源环境准备

    前言: 本次将学习扩展企业微信公众号功能,微信公众号也是企业流量及品牌推广的主要途径,所谓工欲善其事必先利其器,调试微信必须把程序发布外网环境,导致调试速度太慢,太麻烦! 我们需要准备妥当才能进入开发,为后续快速开发作准备 什么是内网穿透? 意在外部网络通过域名可以访问本地IIS站点! 软件环境: Windows10+IIS10 (把本地站点配置到IIS10做为备用,发布站点不作为教程) 知识点:花生壳(主要)ngrok开始: 首先发布站点到IIS,我这里发布站点到本地IIS,并绑定端口为:80

  • .NET微信公众号开发之准备工作

    一.前言 微信公众号是开发者或商家在微信公众平台上申请的应用账号,该帐号与QQ账号互通,通过公众号,商家可在微信平台上实现和特定群体的文字.图片.语音.视频的全方位沟通.互动 .形成了一种主流的线上线下微信互动营销方式. 二.开发准备 在开发以前,公司给你把一些资料准备好,这时候你只需要登录微信公众平台https://mp.weixin.qq.com.启动我们的开发者模式 这些工作都准备好了就可以开始我们的编码工作了. 三.开始编码 第一步:我们要做的就是创建菜单.菜单分为一级菜单,二级菜单,官

  • ASP.NET MVC开发接入微信公共平台

    目录 申请微信公共账号 编写网站逻辑 配置微信公共平台上的信息 申请微信公共账号 既然要接入微信公共平台,微信公共号是必须的(当然如果只是测试的话也可以申请微信公共平台接口测试账号),来这里微信公共平台 申请微信公共号(注:申请微信公共号不能用已绑定微信的邮箱),微信公共平台有自己的官方文档,官方文档有不少资料,可以多看看,开发者模式默认是关闭的,需要配置并启用,如下图: URL即你的网站处理微信模块,必须是HTTP://开头的网站,笔者自己之前接入几天一直失败,最终发现是因为自己网站加密了用的

  • 微信公众号开发之微信公共平台消息回复类实例

    本文实例讲述了微信公众号开发之微信公共平台消息回复类.分享给大家供大家参考.具体如下: 微信公众号开发代码我在网上看到了有不少,其实都是大同小义了都是参考官方给出的demo文件进行修改的,这里就给各位分享一个. 复制代码 代码如下: <?php /**  * 微信公共平台消息回复类  *  *  */ class BBCweixin{    private $APPID="******";  private $APPSECRET="******";  /*  

  • Java微信公众平台开发(1) 接入微信公众平台

    前面几篇文章一直都在说微信公众平台的开发准备工作,那么从这篇开始我们就将正式的进入JAVA微信公众平台开发的整个流程,那么这篇我们开始聊聊如何将我们的服务端和微信公众平台对接! (一)接入流程解析 在我们的开发过程中无论如何最好的参考工具当然是我们的官方文档了:http://mp.weixin.qq.com/wiki/8/f9a0b8382e0b77d87b3bcc1ce6fbc104.html 通过上面我们可以看出其中接入微信公众平台开发,开发者需要按照如下步骤完成: 填写服务器配置 验证服务

  • Node.js开发第三方微信公众平台

    一.写在前面的话   Node.js是一个开放源代码.跨平台的JavaScript语言运行环境,采用Google开发的V8运行代码,使用事件驱动.非阻塞和异步输入输出模型等技术来提高性能,可优化应用程序的传输量和规模.这些技术通常用于数据密集的事实应用程序.--来自维基百科   最近花了差不多近一个月的时间去学习Node.js,由于它的代码语言是 Javascript ,因此对于语法上就没有过多的去研究,毕竟做过Web开发的程序员,很少有不会Javascript的.而写这篇文章,也只是为了 如有

  • ASP 微信公共平台接口实现代码

    复制代码 代码如下: <%@Language="VBScript" CodePage="65001"%><%'**********************************************'注意事项'ASP文件需要以UTF-8的格式保存,否则乱码.'以下两行代码是为了通过微信接口验证的.'response.write request("echostr")'response.end'*****************

  • ASP.NET MVC 开发微信支付H5的实现示例(外置浏览器支付)

    H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付. 主要用于触屏版的手机浏览器请求微信支付的场景.可以方便的从外部浏览器唤起微信支付. 微信开放平台上的也只是简单的介绍了一下逻辑和常见问题,网上查看了很多,说的都不够具体 首先需要在微信商户平台里开通 H5支付 申请入口:登录商户平台-->产品中心-->我的产品-->支付产品-->H5支付 代码逻辑: 1.用户在商户侧完成下单,使用微信支付进行支付 2.

  • ASP.NET Mvc开发之删除修改数据

    之前那篇文章介绍了ASP.NET MVC使用EF来查询数据和EF中DbQuery<T>泛型对象对数据的延迟加载.今天我们就来看看我们怎么使用EF来删除数据. 其实现在的Web开发通用的模式就是前端使用Js和JQuery来和后端进行数据交互.那么我们就在前端来加两个删除和更新的脚本.代码如下: <!--遍历 Action方法 设置给 ViewData 的集合数据,生成HTML代码--> @foreach (BlogArticle a in ViewData["DataLis

  • ASP.NET Mvc开发之查询数据

    对于.NET平台上开发WebForm项目,程序员操作数据的方法主要是通过使用ADO.NET.而我们MVC操作数据库呢?与ADO.NET相比又有怎样的优势呢? 一.大家都在谈的EF到底是什么? EF,全称EntityFramWork.就是微软以ADO.NET为基础发展的所谓ORM(对象关系映射框架,或者说是数据持久化框架). 简单的来说就是根据实体对象操作数据表中数据的一种面向对象的操作框架,具体的底层也是调用ADO.NET. 下面我们就来演示怎么使用EF来操作数据库: 在数据库关系图中,表之间的

  • .NET实现微信公共平台上传下载多媒体文件

    举个例子,有人对着我们的公共微信号拍个照片发送过来,然后我们处理这个照片,比如进行ocr识别字(随后就会降到这个例子),或者人脸识别,或者拍照取证等,这些功能都是相当有用的.那么我们现在就要分析一下这个过程.微信平台肯定不能帮助我们OCR或者人脸识别等功能,要做这些功能首先到得到图片!用户拍摄的照片首先被上传到了wenxin的服务器,然后就有了一个mediaID,我们用这个mediaID可以下载到我们自己的服务器上然后处理,把结果给微信平台,由微信平台最终反馈给用户(关注者).微信的开发文档已经

  • asp.net开发微信公众平台之获取用户消息并处理

    获取用户消息 用户发送的消息是在微信服务器发送的一个HTTP POST请求中包含的,获取用户发送的消息要从POST请求的数据流中获取 微信服务器推送消息到服务器的HTTP请求报文示例 POST /cgi-bin/wxpush? msg_signature=477715d11cdb4164915debcba66cb864d751f3e6&timestamp=1409659813&nonce=1372623149 HTTP/1.1 Host: qy.weixin.qq.com 从POST请求中

随机推荐