.net之微信企业号开发(三) 回调模式的接口开发
2018-06-18 04:28:31来源:未知 阅读 ()
一、前言
微信企业号应用中,有两种模式,一种是普通模式,这种模式只能进行简单网页链接,以及发送固定的消息。为了可以让企业号的用户更好的与应用交互,微信提供了回调模式,这种回调模式的可以将用户发送给微信的信息,转发到用户提供的一个回调接口上,该接口解析用户发送过来的信息,解析后进行相应,而且回调模式中,可以调用的东西不少,扫码,图片,视频,地理位置信息等。
在应用的模式下,选择回调模式,之后,需要设置3个参数(1.回调接口URL;2.token;3.ASESKey),URL就是提供的回调接口,微信会把用户提供的信息,转发到该接口来。我们这里用的url为http://m.xxx.com:10000/WeiXin/MessageInterface/。接口的验证是采用http Get的方式,接口获取消息是采用Post的方式。而且要设置回调模式,必须先实现验证接口。
这对接口的验证,微信提供了相应的开发包,有c#专用的,开发包的主要作用就是进行签名的验证和加密解密。
接口验证代码如下
public string MessageInterface() { string signature = Request.QueryString["msg_signature"]; string timestamp = Request.QueryString["timestamp"]; string nonce = Request.QueryString["nonce"]; string echostr = Request.QueryString["echostr"]; //Careysoft.Basic.Public.Log.LogWrite("111"); if (Request.HttpMethod.ToUpper() == "GET") { string decryptEchoString = ""; if (Careysoft.WeiXin.Public.WeiXinFunction.CheckSignature(m_Token, signature, timestamp, nonce, m_Corpid, m_EncodingAESKey, echostr, ref decryptEchoString)) { if (!string.IsNullOrEmpty(decryptEchoString)) { return decryptEchoString; } } } }
m_Token为回调模式中设置的Token,m_Corpid为企业号微信Id,m_EncodingAESKey为回调模式中设置的AESKey,其余的参数为回调模式传递过来的参数。
下面是 CheckSignature 函数:
public static bool CheckSignature(string token, string signature, string timestamp, string nonce, string corpId, string encodingAESKey, string echostr, ref string retEchostr) { WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(token, encodingAESKey, corpId); int result = wxcpt.VerifyURL(signature, timestamp, nonce, echostr, ref retEchostr); if (result != 0) { return false; } return true; //ret==0表示验证成功,retEchostr参数表示明文,用户需要将retEchostr作为get请求的返回参数,返回给企业号。 // HttpUtils.SetResponse(retEchostr); }
其中,WXBizMsgCrypt为微信平台回调接口开发包,大家下载引用过来就好。
好的,回调验证接口就是这样,有了这个,就可以把应用模式设置为回调模式了!
下一节,我们将试着从回调接口接收用户发送的信息,并对用户进行回复。
请看.net之微信企业号开发(四) 回调模式的接口 信息的接收和发送
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Redis企业级数据备份与恢复方案 2020-06-04
- 每日一书《精通Spring 4.X:企业应用开发实战 》(陈雄华) 完 2020-04-07
- java.net.URISyntaxException 问题解决 2020-04-07
- 【笔记8-Redis分布式锁】从0开始 独立完成企业级Java电商网 2020-02-11
- 【笔记7-部署发布】从0开始 独立完成企业级Java电商网站开发 2020-02-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash