微信验证

public class WXverifyController : Controller
    {
        public ActionResult WXverify()
        {
            Load();
            return View();
        }

        const string Token = "Aa123456";//你的token  

        protected void Load()
        {
            string postStr = "";
            if (Request.HttpMethod.ToLower() == "post")
            {
                System.IO.Stream s = System.Web.HttpContext.Current.Request.InputStream;
                byte[] b = new byte[s.Length];
                s.Read(b, 0, (int)s.Length);
                postStr = System.Text.Encoding.UTF8.GetString(b);
                if (!string.IsNullOrEmpty(postStr))
                {
                    //ResponseMsg(postStr);
                    Response.Write(ResponseMsg(postStr));
                    Response.End();
                }
                //WriteLog("postStr:" + postStr);
            }
            else
            {
                Valid();
            }
        }

        public string ResponseMsg(string s)
        {
            return s;
        }

        /// <summary>
        /// 验证微信签名
        /// </summary>
        /// * 将token、timestamp、nonce三个参数进行字典序排序
        /// * 将三个参数字符串拼接成一个字符串进行sha1加密
        /// * 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。
        /// <returns></returns>
        private bool CheckSignature()
        {
            string signature = Request.QueryString["signature"].ToString();
            string timestamp = Request.QueryString["timestamp"].ToString();
            string nonce = Request.QueryString["nonce"].ToString();
            string[] ArrTmp = { Token, timestamp, nonce };
            Array.Sort(ArrTmp);     //字典排序
            string tmpStr = string.Join("", ArrTmp);
            tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
            tmpStr = tmpStr.ToLower();
            if (tmpStr == signature)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        private void Valid()
        {
            string echoStr = Request.QueryString["echoStr"].ToString();
            if (CheckSignature())
            {
                if (!string.IsNullOrEmpty(echoStr))
                {
                    Response.Write(echoStr);
                    Response.End();
                }
            }
        }

微信验证,布布扣,bubuko.com

时间: 2024-10-11 18:29:32

微信验证的相关文章

【笔记——微信】微信公众号开发之微信验证

以上是整个流程 所需配置包括: 1.在微信公共号设置页面填写自己服务器的地址,具体到接收请求的地址. 2.在接受请求的地址进行验证. 具体实现:(Tomcat 作为服务器,jsp技术实现) 微信会要求对填写的地址进行验证,很简单,他会发送一个get请求到填写的地址,获取他,并按照官方说明进行返回,这一步骤也是为了自己的服务器安全,可以区别改请求是否来自微信官方服务器. 1 protected void doGet(HttpServletRequest req, HttpServletRespon

微信验证及自动回复

上传到服务器,微信验证(wx_sample.php) 说明 第一次验证,调用valid方法,之后就可以切换成responseMsg方法进行自动回复了 判断事件类型:text为发送文本事件,event为触发事件 <?php //定义你的验证token define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); //$wechatObj->valid(); $wechatObj-&

微信验证以及登录流程

前言: 现在大多数网站项目都支持微信登录,付款,以及支付宝登录付款,这种方式也是能够让用户很快速便捷的注册本网站的账号,进行登录,以及后续的操作.相信小伙伴们看完之后,会对怎么与微信或者支付宝服务器打交道有很深的理解,就当做是一个敲门砖吧.那么本篇主要针对微信的验证登录来打开通往微信服务器的大门,下一篇会主要讲解一下支付宝付款验证对接. 本篇为原创,转载请标出处:http://www.cnblogs.com/gudu1/p/8087130.html 下面我会使用大量的代码,代码中添加完整的注释来

微信公众号开发(一)微信验证开发者服务器接口

微信验证开发者服务器接口 微信验证开发者服务器接口 如图所示,开发者可填写自己服务器的验证token的接口地址,以及自定义的token(博主申请的测试号,使用natapp来进行内网穿透) 目的:帮助微信服务器和开发者服务器互相识别,以防恶意攻击 流程图如下(不知道博客园怎么显示md流程图,有知道的仁兄告知):(取自微信公众平台技术文档) st=>start: 开启服务 ipop1=>inputoutput: 接收到数据[不确定是谁发来的] op1=>operation: 尝试提取出sig

微信开发之(一)微信验证

基于微信公众测试平台进行开发测试,并在网上找了很多资料再此声明(如有占用代码请联系以备修改),由于比较杂不一一说明谢谢他们的努力.供有需要的人参考. 首先是实现微信的认证,登录微信测试平台我们可以看到系统自动给了一个微信号,测试号信息:appID和appsecret. 在接口配置信息中,有URL和Token 二个文本框,我们分别在URL上写上我们的服务器测试文件的地址,采用的是一般处理程序类似(http://yourdomain.com/valided.ashx). Token的值我们可以自定义

微信验证代码

public partial class Weixin : System.Web.UI.Page { private string Token = "weixin"; //与那边填写的token一致 protected void Page_Load(object sender, EventArgs e) { if (Request.HttpMethod.ToLower() == "post") { ResMsg(); } else { Valid(); } } //

企业微信验证数据签名请求

1 string signature = Request["signature"]; 2 string timestamp = Request["timestamp"]; 3 string nonce = Request["nonce"]; 4 5 List<string> list = new List<string>(); 6 7 list.Add(appToken); 8 list.Add(timestamp); 9

QQ、手机号、微信、身份证、邮箱正则验证

QQ正则验证 查了下,现在QQ的长度最长是10位数,验证格式为不以0开头的5-10位数字就可以了 var reg = /^[1-9]\d{4,9}$/; reg.test('0123456'); //false reg.test('10000'); //true 手机号验证 验证第一位为1,第二位,为3,5,8的11位数字 var reg = /^1[358]\d{9}$/; 微信验证 验证首位为字母,后面是5-19位数字字母减号下划线 var reg = /^[a-zA-Z][-_a-zA-Z

Python学习之微信公众号接入 一 验证

最近看了些Python的书,但是感觉没有什么进步,想做点事情试试,刚好我以前弄了一个微信公众号,好久不管理了 这次就用它来练练手. 看网上有些教程告诉怎么弄的,我弄了半天终于把验证这步通过了,记录一下: 微信公众号名称:今天做了没 微信公众号:now-to-do 有兴趣的可以加一下,虽然其实没有什么功能呢. 我参考的是这些内容: http://www.yangyanxing.com/?p=859 http://ke.qq.com/video/index.html?course_id=21303