码迷,mamicode.com
首页 > 微信 > 详细

微信公众平台开发视频教程-02-基本配置/ 填写服务器配置

时间:2016-11-18 11:32:48      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:ide   image   private   微信公众平台开发   app   join   get   value   int   

前言

微信公众平台开发,是服务器和服务器之间的通讯,为了完成两个不同系统的之间的通讯,则需要进行一些验证,所以我们在公众平台后台测试账号哪里配置我们这边的接口信息,在进行着一些开发之前,需要我们先做一些准备工作

微信是服务器和服务器之间的交换,所以我们需要一台服务器
(虚拟空间,VPS都可以)
搭建一个web测试站,需要注册一个域名(80端口的)
可以是子域名 比如weixin.bamn.cn 必须是80端口,否则无法使用
技术分享

配置域名 80端口 

我还需要为填写的URL进行一些操作
如果你的接口是PHP的可以参考官网提供的
我们这里是ASP.NET:
http://weixin.bamn.cn/WeiXinTokenApi.aspx 如果是https则443端口
微信服务器那边会往我们上面的地址 进行get操作,我们接口中可以拿到微信服务器传过来的三个参数signature timestamp nonce
技术分享

加密/校验(和微信服务器校验-握手)

1获取微信服务器传过来的四个参数
2 对这三个参数进行“字典序排序”
3 拼接三个字符串
4 对拼接的字符串进行sha1加密
4 成功验证 原样返回
具体可以查看WeiXinTokenApi.aspx.cs页面的代码

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.RequestType.ToLower().Equals("post"))
            {
                //接收消息
                ResponseMsg();
            }
            else
            {
                //校验接口 主要在这里做校验操作
                CheckSignature();
            }
            Response.End();
        }

主要就是这个CheckSignature方法进行校验了,校验是GET的请求的

 private void CheckSignature()
        {
            try
            {
                //1获取微信服务器传过来的四个参数
                string signature = Request.QueryString["signature"];
                string timestamp = Request.QueryString["timestamp"];
                string nonce = Request.QueryString["nonce"];
                string echostr = Request.QueryString["echostr"];//该字符串用来成功验证后原样返回

                string token = TOKEN;
                string[] tmpArr = new string[] { token, timestamp, nonce };//2 对这三个参数进行“字典序排序”
                Array.Sort(tmpArr);
                string tmpStr = string.Join("", tmpArr);//3 拼接三个字符串
                tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");//4 sha1加密
                tmpStr = tmpStr.ToLower();
                if (tmpStr == signature)
                {
                    SetCacheDateTime("Item", tmpStr + ":" + signature + " " + echostr, 3600);
                    //4 成功验证原样返回
                    HttpContext.Current.Response.Write(echostr);
                }
                else {
                    SetCacheDateTime("Item", "验证不通过", 3600);
                    Response.Write("验证不通过");//随便返回
                }
            }
            catch (Exception ex)
            {
                SetCacheDateTime("Item", ex.Message, 3600);
                Response.Write(ex.Message);//随便返回
            }
        }

 只有校验成功了,我们在微信公众平台后台点击保存才会成功保存的


 

微信公众平台开发视频教程-02-基本配置/ 填写服务器配置

标签:ide   image   private   微信公众平台开发   app   join   get   value   int   

原文地址:http://www.cnblogs.com/maijin/p/6076755.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!