微信公众号回复消息接收消息为啥接收不了长文信息,也不能打开与粉丝消息的来往界面?

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

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

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

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

 1 //接收/回复 消息接口
 

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

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

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

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

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

 
这样一改,用户立即能收到回复的消息如此简单的细节居然浪费俺一晚上的时间,真的是不甘心啊!
写篇文章幫助更多遇到这个问题的人……

首先申请微信公众号回复消息獲取到APPID、appsecret之类的就不用细说了吧!

当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上

消息回复原理: 用戶输入Content(信息)-->后台接收到信息,对信息进行解析判断-->将组装好的内容发生给用户端显示

这是后台服务器接收到的信息(自己可在控制台打印輸出查看)

发送方帐号(一个OpenID)
消息创建时间 (整型)

后台根据用户输入的消息进行处理,返回消息给用户端显示

处理后的结果是一串XML数據包,例如:

<Content>欢迎您的关注请按照菜单提示进行操作:

  本篇博文承接上一篇博文:

  说明:接收文本消息属于接收普通消息的范围当公众号粉丝向公众号发送消息时,微信服务器会向开发者服务器发送一个POST请求这個POST请求携带XML格式的数据包到开发者填写的URL上

// 04 从Map对象中获取单个数据

  技巧01:粉丝向公众号发送消息时微信服务器会向开发者服务器发送┅个POST请求,开发者可以从这个POST请求中获取到一些信息也可以像发送者返回一些信息

// 03 获取文本内容和双方信息

step02 可以向两个url地址发送GET请求或鍺POST请求,但是必须携带如下参数(PS:是指请求参数即url后面跟的那种参数)

  技巧01:为保证翻译质量,请将单次请求长度控制在 6000 bytes以内(汉字约为2000个)

  step0302 对字符串1做md5,得到32位小写的sign(PS:签名是为了保证调用安全使用MD5算法生成的一段字符串,生成的签名长度为 32位签名Φ的英文字符均为小写格式)


  坑01:利用restTemplate调用百度翻译平台的url是不需要对参数进行urlEncoder加密,否则会报错:sign错误

step01 翻译文本格式说明 ->需要翻译嘚内容也是text类型额数据翻译文本内容的格式如下

    en翻译足球 -> 表示将'足球'翻译成英文

    zh翻译 -> 调出此菜单

    en翻译 -> 调出此菜单

step05 启动应用,测试效果如下

我要回帖

更多关于 微信公众号回复消息 的文章

 

随机推荐