Rails 为什么网站的支付宝改成 https 就无法收到提醒了?

moliliang · 2014年09月02日 · 最后由 Rei 回复于 2014年09月04日 · 8532 次阅读

大家好,遇到个蛋疼的问题,关于网站的支付宝即时支付导致 notify 错误的问题。

以前用的 http,一直没问题,现在改用 https 就出问题了。。

notify_url 也改成 https 了。

结果用户使用支付宝支付成功后,支付宝的 notify 请求变成了 400 错误(Nginx 访问日志)。

我自己用工具模拟 post 请求 https 的 notify 链接,是可以返回 “error” 字符串的,说明链接没问题,毕竟我只是将 notify url 从 http 改成 https 而已。

理论上木有问题啊。。求助。。。难道支付宝不支持 https。。。感谢

我用的是:https://ruby-china.org/topics/12992 @Rel 开发的 gem 插件。

你的服务支持 SSL 么,有正确的 SSL 证书么?

#1 楼 @huacnlee 必须的啊,谷歌浏览器都显示绿色的锁,正常呢。

我也发现过有这么个问题,看文档也没说不支持 https,只好强制用 http 的地址了,只要做好签名验证还是不怕被修改异步通知数据

location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://xxxx; set $flag 0; if ($request_uri ~* "^/alipay_notify") { set $flag "${flag}1"; } if ($scheme = 'http') { set $flag "${flag}2"; } if ($flag = "02") { rewrite ^(.*) https://www.xxxx.net$1 permanent; } } 分享下我的 nginx 配置,只有 notify 可以不用 https

我用担保交易可以访问 https,不知道是不是不同接口情况不一样。我申请接口的时候是不能访问 https,联系客服才能提交订单。

#5 楼 @Rei 就是不支持 https(⊙_⊙)?好郁闷啊。。

#6 楼 @moliliang Nginx 日志去掉敏感信息放上来看看。

#7 楼 @Rei Nginx 日志中 400 错误了。就是请求不符合 http 规范。。。这明显扯犊子。。

#8 楼 @moliliang 那到底哪里不符合规范?如果你觉得不用深究我也无所谓,因为我还没遇到这个问题。

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