WeixinRailsMiddleware
该项目使用MIT-LICENSE.
https://rubygems.org/gems/weixin_rails_middleware
已经实现消息体签名及加解密,升级与使用,详见Wiki 实现消息体签名及加解密
微信企业版本
https://github.com/lanrion/qy_wechat
https://github.com/lanrion/qy_wechat_api
使用特别说明
支持Rails版本
已经支持 Rails 3,Rails 4,Rails 5,Rails 6
参考示例
Rails 4: https://github.com/lanrion/weixin_rails_middleware_example
Rails 3: https://github.com/lanrion/weixin_rails_3
相关gem推荐使用
-
微信高级功能 请务必结合高级API实现:weixin_authorize
-
Wap Ratchet 框架 推荐使用: twitter_ratchet_rails
查看 Wiki:
使用公司列表
如果您或者您的公司正在使用当中,欢迎加入此列表:
https://github.com/lanrion/weixin_rails_middleware/wiki/gem-users-list
实现功能
-
自动验证微信请求。
-
无需拼接XML格式,只需要使用
ReplyWeixinMessageHelper
辅助方法,即可快速回复。 使用方法:render xml: reply_text_message("Your Message: #{current_message.Content}")
-
支持自定义token,适合一个用户使用。
-
支持多用户token: 适合多用户注册网站,每个用户有不同的token,通过
weixin_rails_middleware.rb
配置好存储token的Model与字段名,即可。 -
文本回复:
reply_text_message(content)
。 -
音乐回复:
reply_music_message(music)
,generate_music(title, desc, music_url, hq_music_url)
。 -
图文回复:
reply_news_message(articles)
,generate_article(title, desc, pic_url, link_url)
。 -
视频回复:
reply_video_message(video)
。 -
语音回复:
reply_voice_message(voice)
。 -
图片回复:
reply_image_message(image)
。 -
地理位置回复: 自定义需求。
-
其他高级API实现:weixin_authorize
如何测试?
安装 ngrok,解压后跑 ngrok 4000
然后会产生以下信息:
Tunnel Status online
Version 1.6/1.5
Forwarding http://e0ede89.ngrok.com -> 127.0.0.1:4000
Forwarding https://e0ede89.ngrok.com -> 127.0.0.1:4000
Web Interface 127.0.0.1:4040
# Conn 67
Avg Conn Time 839.50ms
域名为 http://e0ede89.ngrok.com
。 注意非付费版本域名每次会随机生成,不是固定的。
Ngrok已墙,你懂得的,ngrok 已墙,请使用localtunnel.me,使用方法:
npm install -g localtunnel
$ lt --port 8000
# your url is: https://gqgh.localtunnel.me
贡献你的代码
- Fork 项目
- 创建自己的功能分支 (
git checkout -b my-new-feature
). - 提交你的修改 (
git commit -am 'Add some feature'
). - 推荐到远程分支 (
git push origin my-new-feature
). - 提交PR审核.
- 可使用 weixin_rails_middleware_example, 来测试
Bugs 和反馈
如果你发现有出现任何的bug,请在 https://github.com/lanrion/weixin_rails_middleware/issues 记录你的bug详细信息,
或者在 Ruby China 开帖 @ruby_sky, 个人邮箱回复速度相对慢.
推荐阅读
参考致谢
在微信回复信息XML的封装方法,借鉴了 rack-weixin 实现,特此感谢!
捐赠支持
如果你觉得我的gem对你有帮助,欢迎打赏支持,😄