毕业论文

打赏
当前位置: 毕业论文 > 计算机论文 >

asp.net简易第三方微信公众平台管理系统设计(3)

时间:2021-04-26 23:14来源:毕业论文
返回说明 正常情况下,JSON数据包: {access_token:ACCESS_TOKEN,expires_in:7200} 图3-2 token成功返回参数图 错误时JSON数据包举例: {errcode:40013,errmsg:invalid appid} 3.2 接收

返回说明

正常情况下,JSON数据包:

{"access_token":"ACCESS_TOKEN","expires_in":7200}

图3-2  token成功返回参数图

错误时JSON数据包举例:

{"errcode":40013,"errmsg":"invalid appid"}

3.2 接收消息接口

3.2.1 验证消息真实性

开发中第一次提交验证申请时,微信会发送GET请求到用户提供的URL上,加上(signature、timestamp、nonce、echostr)四个参数,开发时通过对签名(即signature)效验,判断消息真实性。

然后,每次开发者接收用户消息的时候,微信服务器会带上前面三个参数(signature、timestamp、nonce)访问提供的URL,此时还是通过对签名的效验来判断此条消息是否真实。

图3-3  验证消息参数图

本设计检验signature的代码:

        /// <summary>

        /// 验证微信签名

        /// </summary>

        /// <returns></returns>

        /// * 将token、timestamp、nonce三个参数进行字典序排序

        /// * 将三个参数字符串拼接成一个字符串进行sha1加密文献综述

        /// * 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

        private bool CheckSignature()

        {

            string WeChat_Token = "";

            string WeChat_Key = Request.QueryString["key"];

            DataTable dtWeChat = wechatdal.GetList("wechat_key='" + WeChat_Key + "'").Tables[0];

            if (dtWeChat.Rows.Count > 0)

            {

                WeChat_Token = dtWeChat.Rows[0]["wechat_token"].ToString();

            }

            string signature = Request.QueryString["signature"];

            string timestamp = Request.QueryString["timestamp"];

            string nonce = Request.QueryString["nonce"];

            string[] ArrTmp = { WeChat_Token, timestamp, nonce };

            Array.Sort(ArrTmp);     //字典排序

            string tmpStr = string.Join("", ArrTmp);//串联字符串数组?

            tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");

            tmpStr = tmpStr.ToLower();

            if (tmpStr == signature)

            {

                return true;

            }

            else

            {

                return false;

            }

        }

3.2.2 接收普通消息

当粉丝向用户的公众账号发消息时,微信将POST消息的XML数据包发送到指定的URL上。各种消息类型推送XML数据包的结构如下: asp.net简易第三方微信公众平台管理系统设计(3):http://www.751com.cn/jisuanji/lunwen_74448.html

------分隔线----------------------------
推荐内容