• 微信公众平台开发视频教程-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);//随便返回
                }
            }

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


  • 相关阅读:
    php echo return exit 区别
    Ubuntu下添加开机启动项的2种方法
    在php中定义常量时,const与define的区别
    yii分页操作
    ubuntu14.04设置静态ip
    Yii IIS8下使用伪静态【Url Rewrite】去掉index.php
    java 第三方库
    IDEA插件
    springboot扫描通用的依赖模块
    idea注册
  • 原文地址:https://www.cnblogs.com/maijin/p/6076755.html
Copyright © 2020-2023  润新知