gpt4 book ai didi

ruby-on-rails - rails : Stripe Button not working on first attempt (until page is reloaded)

转载 作者:行者123 更新时间:2023-12-02 17:43:12 26 4
gpt4 key购买 nike

我有一个带有自定义结账功能的 Rails 应用程序,用户可以单击按钮来启动 Stripe 模式。

问题是,当我第一次访问该页面并单击按钮时,出现以下错误:

“无效的源对象:必须是字典或非空字符串”

错误来 self 的 Controller 创建操作:

customer = Stripe::Customer.create(
email: params[:stripeEmail],
card: params[:stripeToken]
)

但是如果我刷新页面,我就可以毫无问题地启动模式。我认为这可能是涡轮链接问题,所以我将脚本添加到准备好的变量中:

<script>

var ready;
ready = function() {

$('#stripe-button').on('click', function (e) {
// Open Checkout with further options
$name = $('input[name=f_name]').val() + " " + $('input[name=l_name]').val();
handler.open({
name: $name,
description: "<%= @workshop.name %>" + " workshop",
amount: <%= @workshop.price * 100 %>
});
e.preventDefault();
});

$(window).on('popstate', function() {
handler.close();
});


var handler = StripeCheckout.configure({
key: "<%= ENV['stripe_publishable_key'] %>",
token: function (token, args) {
$("#stripeToken").val(token.id);
$("#stripeEmail").val(token.email);
$("#stripeAmount").val('<%= j (@workshop.price * 100).to_s %>');
$("#stripeForm").submit();
}
});

};

$(document).ready(ready);
$(document).on('page:load', ready);


</script>

但尚未修复。首次加载页面时,e.preventDefault() 似乎不起作用...但我不确定为什么。

最佳答案

我在使用 Stripe 实现自定义表单时遇到了类似的问题。对我有用的是从应用程序布局中移动:

<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= javascript_include_tag "https://js.stripe.com/v2/" %>
<%= javascript_tag "Stripe.publishableKey = '#{STRIPE_PUBLISHABLE_KEY}';" %>

到页面底部的实际 View 文件(例如 new.html.erb),这样它就位于结尾 </body> 的上方标签。这意味着我必须在每个 View 上包含 application.js,而不是通过应用程序布局,因此我可能会将其添加到页脚。不确定这是否是最好的方法,但它对我有用。

关于ruby-on-rails - rails : Stripe Button not working on first attempt (until page is reloaded),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31955814/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com