返回说明

正常情况下,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+sqlserver酒店管理系统设计与实现+ER图
下一篇:基于ArcGIS的淮安楚州区城市交通可达性研究

ASP.NET飞翔租贷汽车公司信...

asp.net+sqlserver校园论坛开发设计

ASP.NET+sqlserver健身房管理系统的设计与实现

asp.net+sqlserver班级网站设计

ASP.NET+SQLSERVER无纸化考试系统+ER图

ASP.NET+SQLSERVER学生心理健康网设计

基于ARMSTM32CORTEX-M4简易电子相框的设计与实现

上海居民的社会参与研究

酵母菌发酵生产天然香料...

压疮高危人群的标准化中...

STC89C52单片机NRF24L01的无线病房呼叫系统设计

提高教育质量,构建大學生...

浅谈高校行政管理人员的...

从政策角度谈黑龙江對俄...

浅论职工思想政治工作茬...

基于Joomla平台的计算机学院网站设计与开发

AES算法GPU协处理下分组加...