下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】如何处理微信公众号开发中的消息与事件
/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-2026学年)
- 雨课堂学堂在线学堂云《芊礼-谦循-送给十八岁女大学生的成人之礼(中华女子学院 )》单元测试考核答案
- 2025年手术室护理实践指南试题(含答案)
- 智慧农贸市场建设项目报告与背景分析
- 护理部竞选副主任
- 【10篇】新版部编六年级上册语文课内外阅读理解专项练习题及答案
- 2026年中国经济展望:风鹏正举
- 雨课堂学堂云在线《人工智能原理》单元测试考核答案
- 区域经济空间结构理论之增长极理论
- 国开电大本科《人文英语4》机考总题库
- 细胞存活曲线的推导王大奖
- 2023年足球俱乐部试训个人简历
评论
0/150
提交评论