gpt4 book ai didi

ruby-on-rails - rails 应用程序中的 Stripe success_url 格式未创建正确的 URL

转载 作者:行者123 更新时间:2023-12-04 02:35:56 28 4
gpt4 key购买 nike

我有一个应用程序,它使用 Stripe Checkout 并创建一个 Stripe session ,然后重定向到结帐。
在我的 Controller 中,此代码工作正常:

session = Stripe::Checkout::Session.create(
payment_method_types: ['card'],
subscription_data: {
items: [{ plan: stripe_plan }],
},
customer: stripe_customer_id,
customer_email: stripe_customer_email,
client_reference_id: current_user.id,
success_url: "http://localhost:3000/welcome_new_subscriber?session_id={CHECKOUT_SESSION_ID}",
cancel_url: "http://localhost:3000/charges/new?stripe_plan=" + stripe_plan,
)


并正确重定向到 URL:
http://localhost:3000/welcome_new_subscriber?session_id=cs_test_abcd1234

当我将 success_url 行更改为以下内容(如一些网站上的建议)时,它不起作用:
      success_url:         welcome_new_subscriber_url(:session_id => '{CHECKOUT_SESSION_ID}'),

URL 解析为:
http://localhost:3000/welcome_new_subscriber?session_id=%7BCHECKOUT_SESSION_ID%7D

{CHECKOUT_SESSION_ID} 似乎没有正确解析。
知道我做错了什么 - 我已经尝试了我能想到的所有语法更改吗?

最佳答案

当你使用

welcome_new_subscriber_url(:session_id => '{CHECKOUT_SESSION_ID}')

Rails 正试图通过 URI 转义来提供帮助 {} .然而,Stripe gem 使用这些作为特殊字符来知道在哪里替换模板变量。

所以你可以使用
welcome_new_subscriber_url + "?session_id={CHECKOUT_SESSION_ID}"

不是最优雅的事情,但话说回来,这里的 Stripe 系统有点奇怪(他们为什么不让你自己通过 CHECKOUT_SESSION_ID?),所以我们必须凑合

关于ruby-on-rails - rails 应用程序中的 Stripe success_url 格式未创建正确的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61856273/

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