为什么 server.rb 在终端中抛出这个错误
Why is server.rb throwing this error in terminal
我跟随 this stripe tutorial 但是当我 运行 Rubyserver.rb
我是 ruby 的新手,所以我可能做错了。
我做的是:
- 已安装 Ruby、Rails、Stripe CLI、Sinatra 和 dotenv
- 通过键入 Stripe samples create 从站点下载示例
开发者办公时间
- cd 进入服务器目录并 运行 ruby
server.rb
这是错误
1: from server.rb:10:in '<main.'
server.rb:10:in 'join': no implicit conversation of nil into string (TypeError)
这里是 server.rb 文件
require 'stripe'
require 'sinatra'
require 'dotenv'
# Replace if using a different env file or config
Dotenv.load
Stripe.api_key = ENV['STRIPE_SECRET_KEY']
set :static, true
set :public_folder, File.join(File.dirname(__FILE__), ENV['STATIC_DIR'])
set :views, File.join(File.dirname(__FILE__), ENV['STATIC_DIR'])
set :port, 4242
get '/' do
content_type 'text/html'
send_file File.join(settings.public_folder, 'index.html')
end
post '/webhook' do
# You can use webhooks to receive information about asynchronous payment events.
# For more about our webhook events check out https://stripe.com/docs/webhooks.
webhook_secret = ENV['STRIPE_WEBHOOK_SECRET']
payload = request.body.read
if !webhook_secret.empty?
# Retrieve the event by verifying the signature using the raw body and secret if webhook signing is configured.
sig_header = request.env['HTTP_STRIPE_SIGNATURE']
event = nil
begin
event = Stripe::Webhook.construct_event(
payload, sig_header, webhook_secret
)
rescue JSON::ParserError => e
# Invalid payload
status 400
return
rescue Stripe::SignatureVerificationError => e
# Invalid signature
puts "⚠️ Webhook signature verification failed."
status 400
return
end
else
data = JSON.parse(payload, symbolize_names: true)
event = Stripe::Event.construct_from(data)
end
# Get the type of webhook event sent - used to check the status of PaymentIntents.
event_type = event['type']
data = event['data']
data_object = data['object']
if event_type == 'some.event'
puts " Webhook received!"
end
content_type 'application/json'
{
status: 'success'
}.to_json
end
stripe login
这是关键的一步。
stripe samples create adding-sales-tax
cd adding-sales-tax/server
bundle install
如果您没有捆绑器,gem install bundler
bundle exec ruby server.rb
打开http://localhost:4242
我跟随 this stripe tutorial 但是当我 运行 Rubyserver.rb
我是 ruby 的新手,所以我可能做错了。
我做的是:
- 已安装 Ruby、Rails、Stripe CLI、Sinatra 和 dotenv
- 通过键入 Stripe samples create 从站点下载示例 开发者办公时间
- cd 进入服务器目录并 运行 ruby server.rb
这是错误
1: from server.rb:10:in '<main.'
server.rb:10:in 'join': no implicit conversation of nil into string (TypeError)
这里是 server.rb 文件
require 'stripe'
require 'sinatra'
require 'dotenv'
# Replace if using a different env file or config
Dotenv.load
Stripe.api_key = ENV['STRIPE_SECRET_KEY']
set :static, true
set :public_folder, File.join(File.dirname(__FILE__), ENV['STATIC_DIR'])
set :views, File.join(File.dirname(__FILE__), ENV['STATIC_DIR'])
set :port, 4242
get '/' do
content_type 'text/html'
send_file File.join(settings.public_folder, 'index.html')
end
post '/webhook' do
# You can use webhooks to receive information about asynchronous payment events.
# For more about our webhook events check out https://stripe.com/docs/webhooks.
webhook_secret = ENV['STRIPE_WEBHOOK_SECRET']
payload = request.body.read
if !webhook_secret.empty?
# Retrieve the event by verifying the signature using the raw body and secret if webhook signing is configured.
sig_header = request.env['HTTP_STRIPE_SIGNATURE']
event = nil
begin
event = Stripe::Webhook.construct_event(
payload, sig_header, webhook_secret
)
rescue JSON::ParserError => e
# Invalid payload
status 400
return
rescue Stripe::SignatureVerificationError => e
# Invalid signature
puts "⚠️ Webhook signature verification failed."
status 400
return
end
else
data = JSON.parse(payload, symbolize_names: true)
event = Stripe::Event.construct_from(data)
end
# Get the type of webhook event sent - used to check the status of PaymentIntents.
event_type = event['type']
data = event['data']
data_object = data['object']
if event_type == 'some.event'
puts " Webhook received!"
end
content_type 'application/json'
{
status: 'success'
}.to_json
end
stripe login
这是关键的一步。
stripe samples create adding-sales-tax
cd adding-sales-tax/server
bundle install
如果您没有捆绑器,
gem install bundler
bundle exec ruby server.rb
打开http://localhost:4242