付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】如何处理微信公众号开发中的消息与事件
/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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年智能保温壶项目公司成立分析报告
- 2026年智能温湿度传感器项目公司成立分析报告
- 2026年智能酒液分析仪项目公司成立分析报告
- 创业成功秘诀全揭示
- 教学质量评估制度
- 幼儿园教师考勤管理制度
- vhdl课程设计交通灯
- 市政道路施工质量保证体系制度
- 2026中国人民大学物业管理中心招聘1人笔试参考题库及答案解析
- 2026年浙江杭州市教育局所属事业单位1月批次招聘542人笔试备考试题及答案解析
- 2026湖北随州农商银行科技研发中心第二批人员招聘9人笔试模拟试题及答案解析
- 2025年-辅导员素质能力大赛笔试题库及答案
- 2025年风电运维成本降低路径报告
- 2025年老年娱乐行业艺术教育普及报告
- 2025年抗菌药物合理应用培训考核试题附答案
- 2025年北京高中合格考政治(第二次)试题和答案
- GJB3243A-2021电子元器件表面安装要求
- 学堂在线 雨课堂 学堂云 工程伦理 章节测试答案
- JJG 1132-2017热式气体质量流量计
- 河北省唐山市2023-2024学年高一上学期1月期末考试化学试题(含答案解析)
- 常见儿科疾病的诊断与治疗误区
评论
0/150
提交评论