使用盛派微信SDK(Senparc.Weixin.MP)设计公众号被动回复API不返回信息问题
研究了一晚上,终于找到原因了,这坑挖的真是害人不浅
不能收到回复的原因为两点:
1. 盛派官方的sdk例子根本是错误的,post请求也必须传参而不是使用盛派的model
2.返回结果要用Content,不要用盛派官方的WeixinResult或FixWeixinBugWeixinResult
下面说说两个重要的api
验证请求Get不多说了,比较简单,验证成功原样返回字符串,不成功返回空字符串
被动回复接口,盛派官方sample给的是这样的
我告诉你,这就是个坑,因为微信不会给你这么发post请求的,你如果这么写了你永远都收不到任何信息
正确写法是:
还有一个坑就是返回结果类型,只有第一个能用
最后贴下我的源代码
[Route("api/[controller]")][ApiController]public class WxMsgController : ControllerBase{static WxAppConfig wxCfg => WxAppConfig.Instance;[HttpGet]public ActionResult Get(string signature, string timestamp, string nonce, string echostr){// 验证成功返回echostr,否则返回空字符串return Content(!CheckSignature.Check(signature, timestamp, nonce, wxCfg.Token) ? "" : echostr);}[HttpPost]public ActionResult Post(string signature, string timestamp, string nonce, string msg_signature){var postModel = new PostModel{Signature = signature,Timestamp = timestamp,Nonce = nonce,Msg_Signature = msg_signature,};if (!CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, wxCfg.Token)){return Content("参数错误!");}postModel.SetSecretInfo(wxCfg.Token, wxCfg.EncodingAESKey, wxCfg.AppId);var messageHandler = new CustomMessageHandler(Request.GetRequestMemoryStream(), postModel);// 接收消息messageHandler.Execute();// 执行微信处理过程return Content(messageHandler.ResponseDocument.ToString());}}
处理流程:
public class CustomMessageHandler : MessageHandler<MessageContext<IRequestMessageBase, IResponseMessageBase>>{#region 构造方法public CustomMessageHandler(Stream inputStream, PostModel postModel) : base(inputStream, postModel) { }public CustomMessageHandler(Stream inputStream, PostModel postModel, int maxRecordCount = 0) : base(inputStream, postModel, maxRecordCount) { }public CustomMessageHandler(RequestMessageBase requestMessage, PostModel postModel) : base(requestMessage, postModel) { }#endregionpublic override IResponseMessageBase DefaultResponseMessage(IRequestMessageBase requestMessage){var respMsg = CreateResponseMessage<ResponseMessageText>();respMsg.Content = "欢迎使用阴阳易演计算模型";return respMsg;}public override IResponseMessageBase OnTextRequest(RequestMessageText reqMsq){var respMsg = CreateResponseMessage<ResponseMessageText>();switch (reqMsq.Content.ToUpper()){case "ID":respMsg.Content = "您的OpenID是:" + respMsg.FromUserName;break;case "天气":respMsg.Content = "抱歉,还未开通此功能!";break;}return respMsg;}}
最终效果:
欢迎关注我的公众号: 道易龙腾,这是一个易经三才计算的公众服务号,用于术数学计算和起卦排盘工具
使用盛派微信SDK(Senparc.Weixin.MP)设计公众号被动回复API不返回信息问题相关推荐
- ASP.NET CORE下用盛派微信SDK取微信openid
用CORE做项目用到微信的相关东西,听说那个盛派微信SDK很火,自己弄了下,只是简单的用用,用户访问页面取微信openid
- php公众号被动回复,微信公众号被动消息回复原理解析
背景:某分厂需要实时查询工件堆放的位置,要求快速便捷,因此设计了采用微信公众号被动回复信息的方案. 技术实现:开发者服务器--基于Angular2框架的已发布网站,编程语言为Python,后台存储数据 ...
- 微信公众平台SDK! Senparc.Weixin.MP.dll(资料整理)
官网地址: http://weixin.senparc.com/ 使用 Senparc.Weixin.MP.dll 整合网站与微信公众账号的自动交流回复. 更多使用说明见:Senparc.Weixin ...
- 基于SENPARC盛派微信sdk的.net WebService微信公众号的相关开发(包含从零开始本机测试环境搭建//token验证//获取微信推送消息//向微信推送消息)
前言: 由于微信公众号正式号,一直在被使用,所以在研发的时候,本机测试环境,就显得非常重要. 而且在自己闲暇之余,可以自己尝试更深程度的微信公众号的研发工作. 1.首先,必要的网站 http://sd ...
- 微信公众号精选文章API支持返回全文
微信主页接口 请求方法 HTTP/HTTPS GET 数据来源 微信公众平台 接口地址 http://api.tianapi.com/weixin/home/?key=APIKEY&src=主 ...
- 微信公众号被动回复方案梳理
微信公众号机器人客服回复方案预梳理 一.微信公众平台开发接入指南 接入微信公众平台开发,需要按照如下步骤完成: 1.填写服务器配置 登录微信公众平台官网后,在公众平台后台管理页面 - 开发者中心页,点 ...
- 关于微信公众号被动回复带有表情的文字
表情的消息类型实质是文本消息.每个表情都有与之对应的表情代码.
- 微信公众号开发-公众号被动回复用户消息
专栏简介
- Senparc.Weixin.MP SDK 微信公众平台开发教程(二十二):如何安装 Nuget(dll) 后使用项目源代码调试...
最近碰到开发者问:我使用 nuget 安装了 Senparc.Weixin SDK,但是有一些已经封装好的过程想要调试,我又不想直接附加源代码项目,这样就没有办法同步更新了,我应该怎么办? 这其实是一 ...
最新文章
- 【PC工具】nodemcu ESP8266常用USB转串口芯片驱动CP210x、CH340G驱动安装有可能遇到的问题及解决办法...
- java session持久化_Session的生命周期和持久化
- Spring4 事务管理
- Windows 下mysqldump备份1045错误解决办法
- java中正则表达式截取字符串
- Python: str.split()和re.split()的区别
- 一些不错的理论[转载]
- Java递归算法求n的阶乘
- java用户行为日志记录方法_简单易用的开源用户操作日志记录系统
- 通过扫码下载安卓和ios安装包
- 基于微信小程序的免费小说阅读平台小程序的设计与实现 毕业设计 毕设源码(1)小程序功能
- IDEA的下载及安装
- strcasecmp函数用法
- 运维工程师模拟面试题
- 纯原生 js 简易 实现 鼠标拖尾效果
- AdminLTE3 Table插件
- java 判断文件类型是否是音频_用java流方式判断文件类型
- 关于ue4播放(play)后画质不清晰的问题
- 萤火虫算法以及避障算法path planning in uncertain environment by using firefly algorithm(萤火虫算法在实际中的应用)
- Elliptic curve Diffie–Hellman