微信公众号入门学习1_使用C#,ASP.NET APIController如何公众号接入服务器并启动开发者模式
前言: 本文是以微信公众号中的订阅号(个人)来进行简单介绍,本人也是刚刚开始学习,有不足之处,欢迎批评指正。
先粘贴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如何公众号接入服务器并启动开发者模式的更多相关文章
- 微信公众号入门学习2_使用C#,ASP.NET APIController如何被动回复用户消息
前言: 这里就可以凸显使用APIController的一个优势了,因为可以通过MVC的路由设置相同的路由,但改变请求的方式(HttpPost),可以单独写被动回复接口. 毕竟,微信服务器转入到咱们自己 ...
- 微信小程序入门学习
前(che)言(dan): 近几天,微信小程序的内测引起了众多开发人员的热议,很多人都认为这将会成为一大热门,那么好吧,虽然我是一个小白,但这是个新玩意,花点时间稍稍钻研一下也是无妨的,谁让我没有女朋 ...
- 微信小程序入门学习之事件 事件对象 冒泡非冒泡事件(1)
这关于事件的学习,可以自己复制到微信开发者工具上自己运行试试. 首先这里有两个文件.js 和.wxml 文件 首先给出.js文件下代码 // pages/news/news.js Page({ /** ...
- 微信小程序入门学习-- 简易Demo:计算器
简单学习下微信小程序 官网 简易教程 · 小程序 https://mp.weixin.qq.com/debug/wxadoc/dev/ 需要通过开发者工具,来完成小程序创建和代码编辑. 下载安装,运行 ...
- asp.net core 微信扫码支付(扫码支付,H5支付,公众号支付,app支付)之1
2018-08-13更新生成二维码的方法 在做微信支付前,首先要了解你需要什么方式的微信支付,目前本人做过的支付包含扫码支付.H5支付.公众号支付.App支付等,本人使用的是asp.net mvc c ...
- 公众号开发学习Day01
登录https://mp.weixin.qq.com/后点击注册进入注册微信公众号界面,使用邮箱进行注册 注意点1:一个邮箱只能创建一个公众号,并且公众号的三种类型(订阅号,服务号,企业号)只能选一种 ...
- PHP语言开发微信公众平台(订阅号)之开启开发者模式
(1)打开上一篇我们从花生壳官网获得的外网网址就会看到localhost根目录下的文件(这里不再赘述php环境的搭建).注:因为外网网址在能联网时,访问外网网址的任何人都能看到根目录下的所有文件,不仅 ...
- Java开发微信公众号(二)---开启开发者模式,接入微信公众平台开发
接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 资料准备: 1.一个可以访问的外网,即80的访问端口,因为微信公众号接 ...
- php 开启微信公众号开发者模式
php 开启微信公众号开发者模式<pre><?php/** * wechat php test */header('Content-type:text');//define your ...
随机推荐
- C#可扩展编程之MEF学习笔记(三):导出类的方法和属性
前面说完了导入和导出的几种方法,如果大家细心的话会注意到前面我们导出的都是类,那么方法和属性能不能导出呢???答案是肯定的,下面就来说下MEF是如何导出方法和属性的. 还是前面的代码,第二篇中已经提供 ...
- 依据BOM和已经存在的文件生成其他种类的文件
在BOM中记录中有物料编码,物料名称,物料规格等,而且依据BOM已经生成了一些的文件,如采购规格书,这个时候需要生成相应的检验规格书模板,可以使用下面的VBA代码,具体代码如下: Function I ...
- c#生成MD5字符串
public static string EncryptWithMD5(string source) { byte[] sor = Encoding.UTF8.GetBytes(source); MD ...
- vi小结1
我使用xshell,vi里面中文乱码: http://www.cnblogs.com/TianFang/archive/2013/01/21/2870181.html 发现他的问题(gcc编译出错时会 ...
- 移动h5开发资源整理
这2年来,移动h5开发逐渐成为一种主流,也不断趋向于成熟.硬件和浏览器的不断更新,曾经的浏览器兼容也不再是开发者的噩梦. 接触h5开发一年多,从最初的新手到现在,陆陆续续遇到过很多坑.这里把想到的一些 ...
- Node.js入门:模块机制
CommonJS规范 早在Netscape诞生不久后,JavaScript就一直在探索本地编程的路,Rhino是其代表产物.无奈那时服务端JavaScript走的路均是参考众多服务器端语言来 ...
- iOS--------坐标系统(UIView的frame、bounds跟center属性)
1.概要翻开ios官方开发文档,赫然发现上面对这三个属性的解释如下: frame:描述当前视图在其父视图中的位置和大小. bounds:描述当前视图在其自身坐标系统中的位置和大小. center:描述 ...
- KnockoutJS 3.X API 第三章 计算监控属性(4)Pure computed observables
Pure computed observables Pure computed observables是KO在3.2.0版本中推出的.她相对于之前的ComputedObservables有很多改进: ...
- PHP将富文本编辑后的内容,去除样式图片等只保留txt文本内容
1.从数据库读取富文本内容样式如下: <p style=";text-indent: 0;padding: 0;line-height: 26px"><span ...
- Ubuntu-安装-theano+caffe-超详细教程
一.说明 本文是继<Ubuntu-安装-cuda7.0-单显卡-超详细教程> 之后的续篇.theano和caffe是深度学习库,对运算能力需求很大,最好使用cuda进行加速.所以,请先阅读 ...