



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】如何处理微信公众号开发中的消息与事件
/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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康营养学课件
- 华东版八上数学试卷
- 皇冠中学初三数学试卷
- 医院设备科管理课件
- 真空虾仁行业深度研究分析报告(2024-2030版)
- 中国机械零部件未来发展趋势分析及投资规划建议研究报告
- 2025届广东省七校联合体物理高二下期末质量跟踪监视试题含解析
- 钛合金设备项目安全风险评价报告
- 健康理疗师培训课件资源
- 2024年证券登记、结算机构服务项目资金需求报告代可行性研究报告
- 天津市南开区2024-2025学年七年级下学期期末考试数学试卷及答案
- 村振兴产业融合发展示范区建设项目运营管理方案
- 2025年中考物理解题方法复习专题10力学压轴题的常见解法
- 慈利一中选拔考试题及答案
- 残疾人护理实操考试题及答案
- 2025年数据科学与大数据技术试题及答案
- DB54∕T 0296-2023 文物古建筑消防安全评估规范
- 医共体医保管理工作制度
- 注塑模具保养维修培训
- 商城周年庆活动方案方案
- 2025新课标教师培训
评论
0/150
提交评论