我试图在网站上实现条纹支付功能,但结帐按钮(应该将访问者重定向到条纹结帐页面)不起作用,因为当我点击它时什么都没有发生。请参阅下面我的代码(或我的Github repo):
/show.html.erb
<div class="col-5">
<div class="picture-details">
<h1><%= @picture.name %></h1>
<p><%= @picture.description %></p>
<% if @picture.is_shopping_item == true %>
<%= button_to "Achat", checkout_create_path, params: {id: @picture.id}, remote: true %>
<% end %>
</div>
/checkout_controller.rb
class CheckoutController < ApplicationController
def create
picture = Picture.find(params[:id])
@session = Stripe::Checkout::Session.create({
payment_method_types: ['card'],
line_items: [
name: picture.name,
amount: picture.price,
currency: 'cad',
quantity: 1
],
mode: 'payment',
success_url: root_url,
cancel_url: root_url,
})
respond_to do |format|
format.js
end
end
end
/create.js.erb
var stripe = Stripe("<%= Rails.application.credentials[:stripe][:public] %>");
var checkoutButton = document.getElementById('checkout-button');
checkoutButton.addEventListener('click', function() {
stripe.redirectToCheckout({
sessionId: '<%= @session.id %>'
}).then(function (result) {
});
});
这是我得到的凭证:
凭证
凭证2
我用了这个Youtube视频,我很确定我的凭证是正确的。
谢谢你的帮助,如果你需要更多的细节,请告诉我:)
控制器中是否缺少@
和@picture
?