消息的接收:
验证消息真实性继续使用接口接入时策略,见Ruby on Rails微信开发1——开发模式的启用与接口配置
接收消息
路由配置:
post '/test/wechat',to: 'wechat_supports#process_request’
- #ruby实现
- #接收微信服务器信息
- def process_request
- if check_signature?(params[:signature], params[:timestamp], params[:nonce]) #验证消息真实性
- if params[:xml][:MsgType] == "event"
- if params[:xml][:Event] == "subscribe"
- render "wechat/info", layout: false, :formats => :xml #关注
- end
- else
- render "wechat/info", layout: false, :formats => :xml #用户输入消息时,回送欢迎关注
- end
- end
- end
注意,发送给微信服务器的XML格式要完全与上图中格式相同,否则无法响应消息!
在ruby on rails中,可以通过创建erb.xml文件的方法构造符合要求的XML
如上,将代码部署到服务器后,用户关注公共账号或者向公共账号发送消息,公共账号均做出响应如下: