开始做 Rails 的公众号项目,感觉这个开发模板正是我需要的:https://github.com/goofansu/wechat-starter
该项目默认是 pg 数据库,将其修改成 sqlite3 数据库以后,在 rails5 下很顺利的就能运行了。
在阿里云上编译并运行了 ngrok 服务器端,在 mac 上编译了客户端,公网访问没有问题。但是在微信公众号平台配置服务器对接时候,死活通过不了:报 URL 超时错误或者是配置失败的错误。反复检查不得其解。
偶然搜到了这个帖子https://ruby-china.org/topics/26468,似乎说可能是 puma 服务器返回有什么特别之处,导致微信公众号平台不识别。
试了一下,将 Gem 里面的 puma 注释掉,然后重新启动 Rails 默认的 webrick 服务器,果然马上就对接成功。更神奇的是,公众号平台上的配置完成以后,将 Rails 服务器再改成 Puma,微信的消息应答完全没问题。
现在还不清楚如果生产环境下 nginx+puma 是不是不会有这样的现象。另外,在微信官方的公众号管理平台上配置服务器对接时候,puma 和 webrick 返回的信息有何不同,也不明白,如果有人有这方面的研究,请分享一下。
这个小坑足足害了我三个小时,太不值了。