Senparc 使用笔记
以前就知道Senparc 这个组件,但是没有仔细研究过,因为我在公司不是负责微信这一块的。
上一周公司突然要开发微信企业号,接到任务后要求第二天上线,他妈的!
我和另外一个同事分工,我做功能他调接口,因为他一直在负责微信开发。
中午的时候我的模块可以测试了,我开始关注他的接口是否调通,结果发现困难重重,他在自己一个个写功能,关键是他还没搞明白到底需要调用那几个接口。
我感觉到来不及了,突然想起Senparc应该都有封装,拿过来用就可以了。
下载了demo进行分析,半天没高清微信消息在哪里处理。最后从别人的例子里面发现有个QyMessageHandler的东东,看了看是个抽象类,所有处理消息的方法都在里面,不过是虚方法。
既然是抽象类,那么真正的处理过程应该是在其子类的重写方法里面完成了。
然后我自定义了个类QyCustomMessageHandler 继承QyMessageHandler 并重写了其所有虚方法和抽象方法。
然后在网页的处理类中这样写(我这里是MVC)
/// <summary>
/// 微信后台验证地址(使用Post),微信企业后台应用的“修改配置”的Url填写如:http://weixin.senparc.com/qy
/// </summary>
[HttpPost]
public ActionResult Index(PostModel postModel)
{
var maxRecordCount = 10;
postModel.Token = CommonModel.Token;
postModel.EncodingAESKey = CommonModel.EncodingAESKey;
postModel.CorpId = CommonModel.CorpId;
Senparc.Weixin.QY.CommonAPIs.AccessTokenContainer.Register(CommonModel.CorpId, CommonModel.Corpsecret);
//自定义MessageHandler,对微信请求的详细判断操作都在这里面。
var messageHandler = new QyCustomMessageHandler(Request.InputStream, postModel, maxRecordCount);
if (messageHandler.RequestMessage == null)
{
//验证不通过或接受信息有错误
VPClub.Log.EasyLog.Error("微信回调验证不通过或有错误", "messageHandler.RequestMessage == null");
}
try
{
//执行微信处理过程
messageHandler.Execute();
//测试时可开启此记录,帮助跟踪数据,使用前请确保App_Data文件夹存在,且有读写权限。
//messageHandler.RequestDocument.Save(Server.MapPath("~/App_Data/Qy/" + DateTime.Now.Ticks + "_Request_" + messageHandler.RequestMessage.FromUserName + ".txt"));
//测试时可开启,帮助跟踪数据
//messageHandler.ResponseDocument.Save(Server.MapPath("~/App_Data/Qy/" + DateTime.Now.Ticks + "_Response_" + messageHandler.ResponseMessage.ToUserName + ".txt"));
//messageHandler.FinalResponseDocument.Save(Server.MapPath("~/App_Data/Qy/" + DateTime.Now.Ticks + "_FinalResponse_" + messageHandler.ResponseMessage.ToUserName + ".txt"));
//自动返回加密后结果
return new FixWeixinBugWeixinResult(messageHandler);//为了解决官方微信5.0软件换行bug暂时添加的方法,平时用下面一个方法即可
}
catch (Exception ex)
{
VPClub.Log.EasyLog.Error("微信回调错误", ex);
return Content("");
}
}
转载于:https://www.cnblogs.com/westfruit/p/5226112.html
Senparc 使用笔记相关推荐
- .Net Core + 微信赋能企业级智能客服系统--学习笔记
摘要 围绕目前需求猛增的微信及移动端企业智能客服业务,利用 .NET Core 的一系列优秀特性及 SignalR 模块打造全双工.跨微信/QQ/钉钉等应用平台.跨系统平台.跨终端.支持企业级并发的移 ...
- 【读书笔记】知易行难,多实践
前言: 其实,我不喜欢看书,只是喜欢找答案,想通过专业的解答来解决我生活的困惑.所以,我听了很多书,也看了很多书,但看完书,没有很多的实践,导致我并不很深入在很多时候. 分享读书笔记: <高效1 ...
- 【运维学习笔记】生命不息,搞事开始。。。
001生命不息,搞事不止!!! 这段时间和hexesdesu搞了很多事情! 之前是机械硬盘和固态硬盘的测速,我就在那默默的看着他一个硬盘一个机械测来测去. 坐在他后面,每天都能看到这位萌萌的小男孩,各 ...
- SSAN 关系抽取 论文笔记
20210621 https://zhuanlan.zhihu.com/p/353183322 [KG笔记]八.文档级(Document Level)关系抽取任务 共指id嵌入一样 但是实体嵌入的时候 ...
- pandas以前笔记
# -*- coding: utf-8 -*- """ Created on Sat Jul 21 20:06:20 2018@author: heimi "& ...
- PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call
您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...
- 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程
暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...
- 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移
暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...
- 王道考研 计算机网络笔记 第六章:应用层
本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构 第二章:王道考研 计算机网络笔记 第 ...
最新文章
- 保存csv时, 不保留index
- 【Java Web前端开发】Response笔记
- Just another board game 博弈-vector套vector
- 非root用户挂载NFS
- 三因素三水平正交表l9_影响多腔导管挤出机头设计的关键因素
- Java FutureTask示例程序
- linux网卡IO,浅谈Linux 网络 I/O 模型简介(图文)
- NVIDIA发布全新推理软件,开创交互式会话AI新时代!
- 脉冲神经网络的开发公司AI-CTX
- 贝叶斯网络的应用实例一
- 封装Python列表实现多下标访问
- python灰度处理_python 简单图像处理(9) 灰度变换
- aws beanstalk mysql_AWS Beanstalk搭建WordPress站点
- CentOS 7 (RHEL 7)服务管理命令的变化
- 图片内包含文本制作方法
- android apk获取系统签名
- 夏敏捷 第39本著作《微信小程序游戏开发快速入门到实战》
- excel表格如何画斜线并写字
- 咸阳强生告诉你吃什么食物养胃效果好
- PDF文件拆分合并器PDF Merge PDF Splitter + Mac
热门文章
- Excel/Power BI连接MySQL缺少组件,卸载失败
- 帐户式质押回购业务指引
- MATLAB中被控对象模型建立的几种方法
- 使用python制作一款能破解ZIP/RAR压缩包与WIFI密码的整合多功能工具
- 医咖会免费STATA教程学习笔记——卡方检验
- 错误	4	error LNK1104: 无法打开文件“libboost_date_time-vc120-mt-sgd-1_64.lib”
- android盒子定时重启,这才是电视、安卓盒子正确的关机方法!延长3年使用寿命...
- 友勤签约中信重工Oracle P6项目管理软件及技术服务项目
- 【UDS统一诊断服务】(补充)五、ECU bootloader开发要点详解 (1)
- 软件质量保障体系建设