前言:  本文是以微信公众号中的订阅号(个人)来进行简单介绍,本人也是刚刚开始学习,有不足之处,欢迎批评指正。

先粘贴2个帮助链接:

入门指引:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1472017492_58YV5&token=&lang=zh_CN

微信开发介绍-源代码分享:http://www.cnblogs.com/pmars/p/3680615.html

1-去微信公众平台申请属于你的订阅号。  https://mp.weixin.qq.com/

基本信息如下:

2-点击菜单:开发--基本配置:

3-点击修改配置:

为了方便入手:URL必填,Token自己起名,EncodingAESKey随机生成即可,最后一个使用明文方式。

URL:自己代码后生成的可以在外网访问的接口地址,可以使用一般处理程序或者MVC中API控制器等。下面将会介绍服务器代码写法;

Token:用于验证服务器消息是否来自微信服务器;

EncodingAESKey:消息加密钥匙,如果第四个选项使用明文方式,不需理会,咱们随机生成即可。

4-准备微信服务器接入代码服务器接口:

将API项目发布后,COPY到外网可以访问的服务器中,并部署到IIS上。

一版路径如下:http://服务器域名(必须80端口)/站点名/GzhTest/Check

这一步可参考文章:

入门指引:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1472017492_58YV5&token=&lang=zh_CN

微信开发介绍-源代码分享:http://www.cnblogs.com/pmars/p/3680615.html

    public static HttpResponseMessage GetReturn(string message)
{
return new HttpResponseMessage
{
Content = new StringContent(message, Encoding.UTF8, "text/html")
};
}
/// <summary>
/// 公众号接入测试
/// </summary>
/// <param name="signature">微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。</param>
/// <param name="timestamp">时间戳</param>
/// <param name="nonce">随机数</param>
/// <param name="echostr">随机字符串</param>
/// <returns>开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。</returns>
[HttpGet]
[Route("Check")]
public HttpResponseMessage Check(string signature, string timestamp, string nonce, string echostr)
{
var myToken = ConfigurationManager.AppSettings["myToken"]; var list = new string[] { myToken, timestamp, nonce };
Array.Sort(list);
var sortStr = string.Join("", list);
var sha1Str = FormsAuthentication.HashPasswordForStoringInConfigFile(sortStr, "SHA1").ToLower(); if (sha1Str == signature && !string.IsNullOrEmpty(echostr))     //根据微信的验证规则做判断
return GetReturn(echostr); return GetReturn("error");
}

5-接入微信服务器:

将上面接口地址放入URL中,即可,最后提交确认。

点击提交按钮。若提示”token验证失败”, 请认真检查代码或网络链接等。  若token验证成功,会自动返回基本配置的主页面,点击启动按钮

6-备注:本人遇到过token验证失败,我的原因是因为接口直接返回要求的随机字符串,但是这里使用API,似乎必须是HttpResponseMessage ,

如果是一般处理程序,使用:

    HttpContext.Current.Response.Write(echoString);
HttpContext.Current.Response.End();

 

微信公众号入门学习1_使用C#,ASP.NET APIController如何公众号接入服务器并启动开发者模式的更多相关文章

  1. 微信公众号入门学习2_使用C#,ASP.NET APIController如何被动回复用户消息

    前言: 这里就可以凸显使用APIController的一个优势了,因为可以通过MVC的路由设置相同的路由,但改变请求的方式(HttpPost),可以单独写被动回复接口. 毕竟,微信服务器转入到咱们自己 ...

  2. 微信小程序入门学习

    前(che)言(dan): 近几天,微信小程序的内测引起了众多开发人员的热议,很多人都认为这将会成为一大热门,那么好吧,虽然我是一个小白,但这是个新玩意,花点时间稍稍钻研一下也是无妨的,谁让我没有女朋 ...

  3. 微信小程序入门学习之事件 事件对象 冒泡非冒泡事件(1)

    这关于事件的学习,可以自己复制到微信开发者工具上自己运行试试. 首先这里有两个文件.js 和.wxml 文件 首先给出.js文件下代码 // pages/news/news.js Page({ /** ...

  4. 微信小程序入门学习-- 简易Demo:计算器

    简单学习下微信小程序 官网 简易教程 · 小程序 https://mp.weixin.qq.com/debug/wxadoc/dev/ 需要通过开发者工具,来完成小程序创建和代码编辑. 下载安装,运行 ...

  5. asp.net core 微信扫码支付(扫码支付,H5支付,公众号支付,app支付)之1

    2018-08-13更新生成二维码的方法 在做微信支付前,首先要了解你需要什么方式的微信支付,目前本人做过的支付包含扫码支付.H5支付.公众号支付.App支付等,本人使用的是asp.net mvc c ...

  6. 公众号开发学习Day01

    登录https://mp.weixin.qq.com/后点击注册进入注册微信公众号界面,使用邮箱进行注册 注意点1:一个邮箱只能创建一个公众号,并且公众号的三种类型(订阅号,服务号,企业号)只能选一种 ...

  7. PHP语言开发微信公众平台(订阅号)之开启开发者模式

    (1)打开上一篇我们从花生壳官网获得的外网网址就会看到localhost根目录下的文件(这里不再赘述php环境的搭建).注:因为外网网址在能联网时,访问外网网址的任何人都能看到根目录下的所有文件,不仅 ...

  8. Java开发微信公众号(二)---开启开发者模式,接入微信公众平台开发

    接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 资料准备: 1.一个可以访问的外网,即80的访问端口,因为微信公众号接 ...

  9. php 开启微信公众号开发者模式

    php 开启微信公众号开发者模式<pre><?php/** * wechat php test */header('Content-type:text');//define your ...

随机推荐

  1. (小常识)Dictionary的遍历

                Dictionary<int, string> objDictionary = new Dictionary<int, string>();       ...

  2. UWP 统一平台开发介绍

    什么是UWP? 很多程序员都有一个梦想:希望自己开发的软件能够轻而易举的在所有平台上运行,而不是把同样的需求,用不同的技术.工具重新开发才能够运行在所有平台上.这就是跨平台,很多软件从业者都在为这个梦 ...

  3. 实战使用Axure设计App,使用WebStorm开发(3) – 构建页面架构

    系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求  实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目   实战使 ...

  4. 透析Express.js

    前言 最近,本屌在试用Node.js,在寻找靠谱web框架时发现了Express.js.Express.js在Node.js社区中是比较出名web框架,而它的定位是“minimal and flexi ...

  5. 我心中的核心组件(可插拔的AOP)~第十三回 实现AOP的拦截组件Unity.Interception

    回到目录 说在前 本节主要说一下Unity家族里的拦截组件,对于方法拦截有很多组件提供,基本上每个Ioc组件都有对它的实现,如autofac,它主要用在orchard项目里,而castle也有以拦截的 ...

  6. Atitit  数据存储的分组聚合 groupby的实现attilax总结

    Atitit  数据存储的分组聚合 groupby的实现attilax总结 1. 聚合操作1 1.1. a.标量聚合 流聚合1 1.2. b.哈希聚合2 1.3. 所有的最优计划的选择都是基于现有统计 ...

  7. java基础-继承:矩形体积类问题

    28.按要求编写一个Java应用程序: (1)定义一个类,描述一个矩形,包含有长.宽两种属性,和计算面积方法. (2)编写一个类,继承自矩形类,同时该类描述长方体,具有长.宽.高属性, 和计算体积的方 ...

  8. c# BlowFish 高速 对称加密

    BlowFish 高速 对称加密 string key = "this is my key"; BlowFish algo = new BlowFish(key); string ...

  9. Visual Studio Emulator for Android 里面的安卓模拟器如何启用

    打开软件

  10. WP、Win10开发或者WPF开发时绘制自定义窗体~例如:一个手机

    WP and Win10 效果:(数字是参考值,和UI无关) <Page x:Class="_05.AllControls._BorderUsePage" xmlns=&qu ...