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

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

前言

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

微信是服务器和服务器之间的交换,所以我们需要一台服务器
(虚拟空间,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-基本配置/ 填写服务器配置