微信公众号开发-(.net)
作为一个开发人员,在进行开发微信公众号是,首先需要完成的是服务器配置。也就是常说的开发者接入。
1.登录微信公众平台,选择基本设置
字段说明:AppId:开发者ID是公众号开发识别码,配合开发者密码可调用公众号的接口能力。是由微信官方提供,在编写代码最好将其配置在web.config文件中。开发过程中要保证必须和微信官网的一致。
AppSecret:开发者密码是校验公众号开发者身份的密码,具有极高的安全性。是由微信官方提供,在编写代码最好将其配置在web.config文件中。开发过程中要保证必须和微信官网的一致。
Token:开发者自己定义的一个string字段,在编写代码最好将其配置在web.config文件中。开发过程中要保证必须和微信官网的一致。
后台代码如下:
验证微信凭证token:
public static void Valid(string strToken)
{
if (HttpContext.Current.Request.QueryString["echoStr"] != null)
{
string echoStr = HttpContext.Current.Request.QueryString["echoStr"].ToString();
if (CheckSignature(strToken))
{
if (!string.IsNullOrEmpty(echoStr))
{
HttpContext.Current.Response.Write(echoStr);
HttpContext.Current.Response.End();
}
}
}
}
验证微信签名
public static bool CheckSignature(string strToken)
{
string signature = HttpContext.Current.Request.QueryString["signature"].ToString();
string timestamp = HttpContext.Current.Request.QueryString["timestamp"].ToString();
string nonce = HttpContext.Current.Request.QueryString["nonce"].ToString();
string[] ArrTmp = { strToken, timestamp, nonce };
//1. 将token、timestamp、nonce三个参数进行字典序排序
Array.Sort(ArrTmp);
string tmpStr = string.Join("", ArrTmp);
//对该字符串进行sha1加密
tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
tmpStr = tmpStr.ToLower();//对字符串中的字母部分进行小写转换,非字母字符不作处理
if (tmpStr == signature)//开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。开发者通过检验signature对请求进行校验,若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,否则接入失败
{
return true;
}
else
return false;
}
webapi:
[HttpGet, HttpPost, Route("index")]
public void index()
{
if (ControllerContext.Request.Method == HttpMethod.Post)
{
GetWxMessage();
}
else
{
string app_token= ConfigurationManager.AppSettings["app_token"].ToString();
WeiXinHelper.Valid(app_token);
}
}
注:记住,在本地调试时,需要将自己的ip地址添加到ip白名单中。ip查询方式是:,如果是部署到服务器上的,需要将服务器的ip地址加入到白名单中。
微信公众号开发-(.net)相关推荐
- 微信公众号开发本地环境开发_如何在5分钟内使HTTPS在本地开发环境上工作
微信公众号开发本地环境开发 Almost any website you visit today is protected by HTTPS. If yours isn't yet, it shoul ...
- 微信公众号开发用书php,php微信公众号开发(3)php实现简单微信文本通讯
<PHP实战:PHP微信公众号开发(3)PHP实现简单微信文本通讯>要点: 本文介绍了PHP实战:PHP微信公众号开发(3)PHP实现简单微信文本通讯,希望对您有用.如果有疑问,可以联系我 ...
- 【微信公众号开发】获取并保存access_token、jsapi_ticket票据(可用于微信分享、语音识别等等)...
步骤一:首先得开通公众号(目的是 获得appid.AppSecret.设置安全域名)~ [公众号设置]→[功能设置] 设置相应的域名 步骤二:编写帮助类WeixinLuyinHelper中的代码 #r ...
- 微信公众号开发Django-网页授权
原文链接 对于基础的微信公众号开发,网页授权,JSSDK,图片处理应该是最重要的三部分了 根本上也是按照文档开发,技术含量并不高. (选Django=很多权限控制模块已经做好了,比较省力) 在开始之前 ...
- 慕课网_《Java微信公众号开发进阶》学习总结
时间:2017年08月12日星期六 说明:本文部分内容均来自慕课网.@慕课网:http://www.imooc.com 教学源码:http://img.mukewang.com/down/... 学习 ...
- 微信公众号开发之准备工作
这是微信公众号开发的第一步.是网页授权的那章的前提. 工作室有关一个订餐系统的开发,我对公众号开发比较感兴趣,所以参与这方面的学习. 本章主要讲述两个方面的内容,一是工具的准备,二是环境的配置. -- ...
- java微信公众号开发token验证失败的问题及解决办法
java微信公众号开发token验证失败的问题及解决办法 参考文章: (1)java微信公众号开发token验证失败的问题及解决办法 (2)https://www.cnblogs.com/beardu ...
- 微信公众号开发小记(二)--服务器验证
这篇是微信公众号开发小记的第二篇,承接上一篇,此次将完成如下主要功能 对接微信服务器和自己的服务器 需要的"材料" 到这里需要梳理一下都需要什么东西,以便在整个编码的过程中方便我们 ...
- 微信公众号开发小记——4.两种邀请用户的方式 扫码链接
描述 假设的我们的服务号有这么一些功能,比如底部有按钮,点击会有一些复杂的功能,这时候可能就需要一个用户系统,有用户系统就经常想要做什么分享邀请新用户之类的,这时候就又有几种方式,1.直接一个连接,让 ...
- 微信公众号开发入门教程第一篇
微信公众号开发入门教程第一篇 关键字:微信公众平台开发 作者:方倍工作室 在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯.及HTTP/XML/CSS/ ...
最新文章
- AMAB interconnector PL301(二)
- 数据库服务器 之 在Linux下使用perl通过unixODBC连接SQLServer2000
- C#中使用SharpZipLib进行解压缩然后进行二进制反序列化
- VMwareTool 安装
- WTM 构建DotNetCore开源生态,坐而论道不如起而行之
- 查看PLC IP 端口_西门子828D数控系统X130接口通讯怪异现象(X130手动设置的 IP)...
- 程序员面试金典 - 面试题 16.20. T9键盘(数组)
- 分区助手扩大c盘后自动修复_磁盘分区工具,这个好用;无论调整C盘还是系统迁移...
- 如何成为一名优秀的web前端工程师(前端攻城师)
- 从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~二 DBContext实例中,表实体对象是怎么被加入的...
- 允许Fedora 12以root身份登录图形界面
- easyUI制作slider小滑块,可拖动和精确输入
- Java基础笔记(三)
- javascript鼠标效果
- android+抓取直播源,直播rtmp源地址抓取软件
- 方法重载和重写的区别
- Laravel快速创建统计图表
- postman tests获取cookie
- java socket连接超时_Java中Socket设置连接超时的代码
- winrar去掉烦人的广告 亲测有效