



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】如何处理微信公众号开发中的消息与事件
/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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 营销部操作指南
- 英语重点词汇详解caveat
- 英语小学五年级上册期末试题
- 出租车公司夜间运营安全保障雇佣合同
- 餐饮企业员工劳动合同与工作环境改善
- 企业历史债务排查方案
- 高级专业技术人才标准劳动合同书
- 仓储物流园区厂房股权转让及仓储服务合作协议
- 烟囱拆除工程设计与施工质量保证合同
- 智能办公环境租赁与智慧城市建设合同
- 关心关爱员工心理健康
- 中医药与人工智能融合应用
- 羊水三度污染护理查房课件
- 汽车维修工时收费标准(二类企业)
- 高等物理化学课件
- 酒吧运营管理优化方案
- 真石漆专业施工方案
- 03 35KV无功补偿装置安装施工方案
- 政府采购法考试题库及答案(通用版)
- 重症医学科健康宣教手册
- 留置看护工作个人总结3篇
评论
0/150
提交评论