使用 Active Merchant 和 PayPal 时出现 SSL 错误
Posted
技术标签:
【中文标题】使用 Active Merchant 和 PayPal 时出现 SSL 错误【英文标题】:SSL error when using Active Merchant and PayPal 【发布时间】:2012-09-28 06:39:08 【问题描述】:我正在尝试使用 Active Merchant 和 PayPal 在暂存服务器上处理付款。我的一切设置如下。
-
设置 PayPal 商家帐户
将凭据放入活动商家/PayPal 配置中
已下载 PayPal PEM 并将其放在我的服务器上
从 PositiveSSL 购买并上传了 SSL 证书
但是,当我运行代码(如下)时,我收到此错误:
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read finished A: sslv3 alert handshake failure
这是我正在使用的代码
ActiveMerchant::Billing::PaypalGateway.pem_file = File.read("#Rails.root/config/cert_key_pem.pem")
@credit_card ||= ActiveMerchant::Billing::CreditCard.new(:brand => "Visa", :number => "4242424242424242", :verification_value => "123", :month => "11", :year => "2016", :first_name => "John", :last_name => "Doe")
gateway = ActiveMerchant::Billing::PaypalGateway.new(:login => "sales_api1.example.com", :password => "password")
response = gateway.authorize(150, @credit_card, :ip=>"123.123.123.1")
有人遇到过这个问题或知道 SSL 失败的解决方案吗?
【问题讨论】:
【参考方案1】:好吧,我最终放弃了,我没有使用证书验证方法,而是使用了 PayPal 签名。
所以我删除了 PEM 文件,现在正在使用
gateway = ActiveMerchant::Billing::PaypalGateway.new(:login => "sales_api1.example.com", :password => "password", :signature => "fake_signature")
而且效果很好。所以...是的,如果其他人在使用 Active Merchant 和 PayPal 时遇到问题,请尝试将您的身份验证方法从证书换成签名。
【讨论】:
【参考方案2】:试试这个, http://railsapps.github.com/openssl-certificate-verify-failed.html
【讨论】:
以上是关于使用 Active Merchant 和 PayPal 时出现 SSL 错误的主要内容,如果未能解决你的问题,请参考以下文章
在 Active Merchant / PayPal Express Checkout 中设置税额
我们可以使用 active-merchant authorized.net COM API 从网关检索交易详情吗?
Active Merchant 和 Authorize.net 在生产中返回失败
配置 active_merchant 以与 Rails 3 应用程序兼容
Rails:安装 active_merchant_payu_india 时出错
Active Merchant - 未初始化的常量 ActiveSupport::XmlMini_REXML::StringIO