微信公众号的开发之 服务器配置(一)

首先: 你得有一个微信公众号,当然你也可以使用测试的公众号


其次:微信开发接口文档http://mp.weixin.qq.com/wiki/home/index.html


步骤:

配置接口信息如图:




url里面填充的是你的服务器地址,http://你的域名/控制器/函数,你得保证这个地址在外网上能够访问,

错误情况:

url请求超时:你的地址微信访问不到,如果你的写的是192.168的ip肯定是不行,最好有个域名

token配置错误:你填写的token和你代码里面的token不一致

配置失败:你的签名函数验证失败,刚开始的时候可以跳过这一步,直接将微信传过来的echostr字符串返回


验签代码:

 <span style="white-space:pre">	</span>/// <summary>
        /// 微信推送地址
        /// </summary>
        /// <returns></returns>
        public string go()
        {
            string xml = "error";

            if (Request.QueryString["echostr"] != null)
            {
                //signature 验证服务器地址的有效性
                string signature = Request.QueryString["signature"].ToString();
                string timestamp = Request.QueryString["timestamp"].ToString();
                string nonce = Request.QueryString["nonce"].ToString();
                string echostr = Request.QueryString["echostr"].ToString();
                xml = renzhen(signature, timestamp, nonce, echostr);
            }
            else
            {

                //推送消息和事件
                xml = ProcessRequest(HttpContext);

            }
            return xml;
        }
<span style="white-space: pre;">	</span>/// <summary>
        /// 微信认证
        /// </summary>
        /// <param name="signature"></param>
        /// <param name="timestamp"></param>
        /// <param name="nonce"></param>
        /// <param name="echostr"></param>
        /// <returns></returns>
        private string renzhen(string signature, string timestamp, string nonce, string echostr)
        {


            string res = "";
            string token = ConfigurationManager.AppSettings["token"];
            if (string.IsNullOrEmpty(token) || string.IsNullOrEmpty(signature) || string.IsNullOrEmpty(timestamp) || string.IsNullOrEmpty(nonce) || string.IsNullOrEmpty(echostr))
            {
                res = "error";
            }
            else
            {
                ArrayList arr = new ArrayList() { token, timestamp, nonce };
                arr.Sort();
               
                string signature1 = GetSHA1(arr[0].ToString() + arr[1].ToString() + arr[2].ToString());
                if (signature1 == signature)
                {
                    res = echostr;
                }
                else
                {
                    res = "error";
                }
            }
            return res;
        }


        /// <summary>  
        /// 加密字符串  
        /// </summary>  
        /// <param name="password"></param>  
        /// <returns></returns> 
        private string GetSHA1(string password)
        {
            string sha1string = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(password, "SHA1");
            return sha1string.ToLower();
        }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值