博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信开发回复消息收不到 微信公众账号开发者为什么回复消息不成功的原因解决...
阅读量:5246 次
发布时间:2019-06-14

本文共 1270 字,大约阅读时间需要 4 分钟。

微信开发回复消息收不到的最大罪魁祸首,微信公众账号为什么回复消息不成功的原因解决办法

上一篇文章讲到如何配置微信开发,以及.NET平台使用MVC做一个小DEMO的流程,还有常见收不到消息的问题,本篇文章讲的是一个很容易让人忽略但又是很重要的问题导致用户收不到响应的消息原因。

上一篇文章链接:

(如果你是通过搜索引擎进来的建议你看下上篇文章,说不定就解决你的问题了)

这个问题出在代码

首先我们的C#代码是这么写的:

1 //接收/回复 消息接口 2         [HttpPost] 3         public ActionResult WeiXin() 4         { 5             Request.ContentEncoding = Encoding.UTF8; 6             var msg = XmlHelper.ToObject
(Request.InputStream); 7 if (msg == null) 8 return Content(""); 9 WxTextMessage.Send smsg = new WxTextMessage.Send() { Content = "ccc", CreateTime = msg.CreateTime, FromUserName = msg.FromUserName, ToUserName = msg.ToUserName };10 var str = XmlHelper.ToXml(smsg);11 return Content(str,"text/xml",Encoding.UTF8);12 }

第5~8行:将XML数据转换为对象

第9~11行:实例化回复消息对象、转换为XML、返回结果

 

看出什么问题了吗?(反正我是看了几个小时才发现的)

其实这样写犯了个巨大的错误:

在第9行的地方:响应的消息中:

FromUserName = msg.FromUserName, ToUserName = msg.ToUserName 错误的原因就在为:msg为接收到的消息,而我们实例化的是返回的消息,在接收时:FromUser=用户 ToUser=我 ,然而在返回消息时From和To是反过来的,FromUser=我 ToUser=用户,如果直接这样写就变成了给自己发送消息,因此要反过来写变成: FromUserName = msg.ToUserName, ToUserName = msg.FromUserName

这样一改,用户立即能收到回复的消息,如此简单的细节居然浪费俺一晚上的时间,真的是不甘心啊!

写篇文章帮助更多遇到这个问题的人……

 

转载于:https://www.cnblogs.com/yzeng/p/3885981.html

你可能感兴趣的文章
ASP.NET 3.5构建Web 2.0门户站点
查看>>
PP tables for production order
查看>>
oam系统安装,windows操作系统注册列表影响系统安装
查看>>
[scrum]2011/9/25-----第五天
查看>>
《人月神话》有感,好书,推荐
查看>>
IE浏览器打开chorme浏览器,如何打开其他浏览器
查看>>
GNU 内联汇编
查看>>
【转】代码中特殊的注释技术——TODO、FIXME和XXX的用处
查看>>
php提交表单校验例子
查看>>
man查看帮助命令
查看>>
【SVM】libsvm-python
查看>>
mysql 修改已存在的表增加ID属性为auto_increment自动增长
查看>>
sgu 109 Magic of David Copperfield II
查看>>
C++循环单链表删除连续相邻重复值
查看>>
IIS 7.5 + PHP-5.6.3 + mysql-5.6.21.1(转载)
查看>>
渣渣小本求职复习之路每天一博客系列——Java基础(3)
查看>>
C#调用WIN32 的API函数--USER32.DLL
查看>>
ListView下拉刷新实现
查看>>
Jmeter接口压力测试,Java.net.BindException: Address already in use: connect
查看>>
【7集iCore3基础视频】7-4 iCore3连接示意图
查看>>