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

Posted 麦田怪人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信公众平台开发视频教程-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-基本配置/ 填写服务器配置的主要内容,如果未能解决你的问题,请参考以下文章

微信公众平台开发教程 实例入门:机器人(附源码)

微信公众平台开发教程付视频

微信公众平台开发教程_微信自定义菜单的创建

资源 | PHP微信公众平台开发教程

微信公众平台开发教程Java版 消息接收和发送

微信公众平台怎么开发?