新手问题 Rails 公众号开发碰到的一个小坑: 公众号对接失败

samport · 2016年12月06日 · 最后由 mingyuan0715 回复于 2016年12月07日 · 2889 次阅读

开始做 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 返回的信息有何不同,也不明白,如果有人有这方面的研究,请分享一下。

这个小坑足足害了我三个小时,太不值了。

相关帖子:https://ruby-china.org/topics/30957

抓包,看请求的差异,尤其 header

我就用的 Nginx + puma,Rails 4,没有问题

我还一直以为是 ngrok 的问题,我之前用 puma 是可以极低概率成功的,大概 5% 的概率能不会报错。😫

需要 登录 后方可回复, 如果你还没有账号请 注册新账号