返回说明

正常情况下,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的Web网络應用程序开...

asp.net+sqlserver数据挖掘的在...

asp.net+sqlserver图书借还信息系统设计

asp.net+sqlserver仪器设备采购...

asp.net+sqlserver信息安全技术...

asp.net+sqlserver社区医院病员...

老年2型糖尿病患者运动疗...

安康汉江网讯

张洁小说《无字》中的女性意识

ASP.net+sqlserver企业设备管理系统设计与开发

互联网教育”变革路径研究进展【7972字】

我国风险投资的发展现状问题及对策分析

新課改下小學语文洧效阅...

麦秸秆还田和沼液灌溉对...

网络语言“XX体”研究

LiMn1-xFexPO4正极材料合成及充放电性能研究