微信SDK开发——接口接入

园子里面很多关于微信接口开发的文章,Github也一堆的开源代码。

官方文档地址:http://mp.weixin.qq.com/wiki/home/index.html

接下来主要以代码为主,接口说明自己去看文档

 

验证接入需要一个80端口的外网服务器地址,在填写地址,Token信息之后,程序会验证接入

验证会像就扣地址通过GET的方式发送几个数据:

signature,timestamp, nonce, echostr(该参数仅仅在验证接入时候会带上)

接下来就是你服务端接口验证签名的可用性了,加密是根据前面三个参数进行排序然后通过SHA1方式加密

排序代码:

List<string> StrArr = new List<string>();

            StrArr.Add(token);

            StrArr.Add(timestamp);

            StrArr.Add(nonce);

            StrArr.Sort();

            string Str = string.Empty;

            StrArr.ForEach(s =>

            {

                Str = string.Concat(Str, s);

            });

            Str = StrArr.Aggregate((prev, next) =>

            {

                return prev + next;

            });

            Str = Encrypt.Sha1(Str);

            return string.Compare(Str, signature, true) == 0;

  

 

中间用到的SHA1加密方法代码:

public static string Sha1(string str)

        {

            SHA1 sha = new SHA1CryptoServiceProvider();

            ASCIIEncoding asci = new ASCIIEncoding();

            byte[] data = asci.GetBytes(str);

            byte[] hashdata = sha.ComputeHash(data);

            return BitConverter.ToString(hashdata).Replace("-", "");

        }

  验证OK,返回服务器传递过来的echostr的值就行了,这样就算验证通过了~

以后接微信调用该接口不会有echostr参数!

 

我一般用MVC做开发

Controller如下

public ActionResult Index(string signature, string timestamp, string nonce, string echostr)

        {

            bool valid = CheckSignature(signature, "token", timestamp, nonce);

            if (!valid) return Content("接口接入失败,请验证令牌是否正确!");

            if (!string.IsNullOrEmpty(echostr)) return Content(echostr);

            if (Request.InputStream.Length <= 0) return Content("请POST请求!");

            //接下来你自己的业务逻辑

        }

  到这里基本微信的接入已经实现~ Enjoy it!

你可能感兴趣的:(sdk)