我的应用程序使用 OAuth2 gem (0.1.1) 连接到 Facebook,使用 ActiveMerchant gem (1.12.0) 连接到 PayPal。在当前的 Rails/Ruby 发行版(3.0.5、1.9.2)下,这两个 gem 在使用时都会抛出以下 OpenSSL::SSL::SSLError :
- SSL_connect 返回=1 errno=0 state=SSLv3 读取服务器证书B:证书验证失败
我做了一些挖掘,发现了两个补丁。第一个涉及将其作为“faraday.rb”( http://bit.ly/hZqNwQ )插入我的初始化程序文件夹。OAuth2(Facebook)方面的东西确实适用于这个补丁。但是,ActiveMerchant (PayPal) 代码仍然会引发相同的 SSL_connect 错误。
我尝试过的第二个补丁(未成功)是“always_verify_ssl_certificates”gem(http://bit.ly/dXmuUh)。我做了以下事情:(1) Gemfile 中的 gem 'always_verify_ssl_certificates' (2) 要求 ApplicationController 文件中的'always_verify_ssl_certificates'。但是,OAuth2 (Facebook) 和 ActiveMerchant (PayPal) 都会抛出以下 TypeError:
- 错误的论点(NilClass)!(预期类型的 OpenSSL::SSL::SSLContext)
我的 OAuth2 Facebook 代码 AuthorizeController 和我的 ActiveMerchant PayPal 的链接(现在的PaymentsController 在下面的评论中。这是在遵循 Michael Bleigh 的 2010 OAuth2 指南和 2008 Cody Fauser ActiveMerchant 教程之后。非常感谢任何帮助!我在这一点上我很困惑。