gpt4 book ai didi

javascript - 如何从 Rails Controller 调用 Stripe Checkout

转载 作者:行者123 更新时间:2023-12-05 07:19:11 24 4
gpt4 key购买 nike

我将 stripe checkout api 与 Rails 应用程序一起使用。我想在用户提交表单时重定向到结帐页面。我遇到的问题是 Stripe 结帐需要单击一个按钮,这将触发一个 javascript 函数,该函数获取 session ID 并重定向到结帐页面。

我的问题是,当用户提交表单时,我想使用他们提交的电子邮件来创建结账 session 并将他们的 stripe 客户帐户链接到他们的结账。所以在表单提交上我能够很好地创建 session ,我只是无法在创建 session 后触发前端 javascript 函数。

我尝试直接从 Rails Controller 调用一个 javascript 函数并将 session ID 传递给它,我无法让它工作,但感觉它可能接近解决方案。一旦 Controller 创建了 session ,我具体如何触发 javascript 函数

这是我想在我的 Controller 中调用的 Javascript 函数

function go_to_stripe(sessionId) {
var stripe = Stripe("<%=ENV["STRIPE_PUB_KEY"]%>");

stripe.redirectToCheckout({
sessionId: sessionId
}).then(function (result) {
console.log("hitting the then with result of ", result);
});
}

我已经在 Controller 中尝试过这个(以及它的一些变体)但它没有调用 javascript 函数。

# this returns the session id 
@stripe_session_id = create_stripe_session(@cart)
respond_to do |format|
format.html
format.js { render :js => "go_to_stripe("+@stripe_session_id+");" }
end

最佳答案

找到了基于 https://signalvnoise.com/posts/3697-server-generated-javascript-responses 的修复程序

关键在于在表单上设置 remote: true 以及将 javascript 文件命名为与 Controller 操作相同的名称。更改文件中的 javascript 以包含函数的主体。

JavaScript

var stripe = Stripe("<%=ENV["STRIPE_PUB_KEY"]%>");

stripe.redirectToCheckout({
sessionId: "<%= @stripe_session_id %>"
}).then(function (result) {
console.log("hitting the then with result of ", result);
});

rails Controller

@stripe_session_id = create_stripe_session(@cart)
respond_to do |format|
format.html
format.js
end

关于javascript - 如何从 Rails Controller 调用 Stripe Checkout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57897089/

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