下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】如何处理微信公众号开发中的消息与事件
/upload/information/20201208/260/12337.jpg/upload/information/20201208/260/12339.jpg/upload/information/20201208/260/12341.jpg///
<summary>
///
验证消息的有效性
///
</summary>
///
<param
name="context"></param>
///
<returns>如果消息有效,返回true;否则返回false。</returns>
private
bool
Validate(HttpContext
context)
{
string
username
=
RequestEx.TryGetQueryString("username");
//在接口配置的URL中加入了username参数,表示哪个微信公众号
AccountInfo
account
=
AccountInfoCollection.GetAccountInfo(username);
if
(account
==
null)
return
false;
string
token
=
account.Token;
string
signature
=
RequestEx.TryGetQueryString("signature");
string
timestamp
=
RequestEx.TryGetQueryString("timestamp");
string
nonce
=
RequestEx.TryGetQueryString("nonce");
if
(string.IsNullOrWhiteSpace(signature)
||
string.IsNullOrWhiteSpace(timestamp)
||
string.IsNullOrWhiteSpace(nonce))
return
false;
return
xrwang.weixin.PublicAccount.Utility.CheckSignature(signature,
token,
timestamp,
nonce);
}
验证消息真实性验证消息真实性RequestMessageHelper
helper
=
new
RequestMessageHelper(context.Request);
if(helper.Message
!=
null)
{
//消息解析成功,对它进行处理
}RequestBaseMessage
bm=helper.Message;
switch(bm.MsgType)
{
case
RequestMessageTypeEnum.text:
//文本消息
HandleTextMessage((RequestTextMessage)bm);
break;
case
RequestMessageTypeEnum.image:
//图片消息
HandleImageMessage((RequestImageMessage)bm);
break;
//处理其他消息
case
RequestMessageTypeEnum.event:
//事件
RequestEventMessage
ev=(RequestEventMessage)bm;
switch(ev.Event)
{
case
RequestEventTypeEnum.subscribe:
//订阅
HandleSubscribeMessage((RequestSubscribeMessage)ev);
break;
case
RequestEventTypeEnum.unsubscribe:
//取消订阅
HandleUnsubscribeMessage((RequestUnsubscribeMessage)ev);
break;
//处理其他事件
}
break;
default:
break;
}///
<summary>
///
处理微信的POST请求
///
</summary>
///
<param
name="context"></param>
///
<returns>返回xml响应</returns>
private
string
HandlePost(HttpContext
context)
{
RequestMessageHelper
helper
=
new
RequestMessageHelper(context.Request);
if
(helper.Message
!=
null)
{
ResponseBaseMessage
responseMessage
=
HandleRequestMessage(helper.Message);
return
responseMessage.ToXml(helper.EncryptType);
}
else
return
string.Empty;
}
///
<summary>
///
处理请求消息,返回响应消息
///
</summary>
///
<returns>返回响应消息</returns>
private
ResponseBaseMessage
HandleRequestMessage(RequestBaseMessage
requestMessage)
{
ResponseTextMessage
response
=
new
ResponseTextMessage(requestMessage.From
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《室内设计空间组织》课件
- 《电源系统的建模》课件
- 《病理心理学》课件
- 通史版2025届高考历史二轮总复习第二编考前突破突破一史学入门与史料研读课件
- 大学生网络安全教育
- 单位管理制度集合大合集人员管理十篇
- 单位管理制度合并选集【职员管理篇】十篇
- 单位管理制度分享汇编职员管理篇
- 单位管理制度分享大全职工管理
- 单位管理制度范例选集职工管理篇十篇
- 【西平李氏】忠武郡王李晟后裔分布及部分家谱
- 水库回水计算(实用)
- 人力资源管理概论全套课件
- 伊索寓言-狗和影子课件
- 卸船机用行星减速机的设计-毕业设计
- 中班美术活动美丽的蝴蝶教案【含教学反思】
- 北师大版九年级数学上册教学教学工作总结
- 光储电站储能系统调试方案
- (完整)小学语文考试专用作文方格纸
- 管理供应商 供应商绩效评估
- 烟花爆竹工程设计安全规范
评论
0/150
提交评论