在开发环境中,我可以测试条带支付(使用测试卡)。但是运行rspec功能测试,付款失败,我收到以下错误。
已禁用对TLS版本低于1.2的测试模式请求的支持,并且将在2018年6月13日删除实时模式下的支持。请使用TLS 1.2或更高版本启动HTTPS连接。您可以在https://stripe.com/blog/upgrading-tls了解更多相关信息。
我正在使用capybara(v2.13)和poltergeist进行特征测试。我尝试了这个URL中提到的升级步骤。但问题仍然存在。
由于你的问题不清楚这个答案假定当“浏览器”(Poltergeist使用的PhantomJS)向Stripe发出请求时发生错误。如果服务器向Stripe发出请求时发生错误,则此答案不会有任何区别。
PhantomJS(Poltergeist使用)有一个'--ssl-protocol'命令行选项,Poltergeist默认为TLSv1。您可以在驱动程序注册中自定义 - https://github.com/teampoltergeist/poltergeist#customization。
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app,
phantomjs_options: ['--ssl-protocol=TLSv1.2']
)
end