我有一个应用程序,它使用 Stripe Checkout 并创建一个 Stripe 会话,然后重定向到结帐。在我的控制器中,此代码工作正常:
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,
)
Run Code Online (Sandbox Code Playgroud)
并正确重定向到 URL:
http://localhost:3000/welcome_new_subscriber?session_id=cs_test_abcd1234
Run Code Online (Sandbox Code Playgroud)
当我将 success_url 行更改为以下内容(如一些网站上的建议)时,它不起作用:
success_url: welcome_new_subscriber_url(:session_id => '{CHECKOUT_SESSION_ID}'),
Run Code Online (Sandbox Code Playgroud)
URL 解析为:
http://localhost:3000/welcome_new_subscriber?session_id=%7BCHECKOUT_SESSION_ID%7D
Run Code Online (Sandbox Code Playgroud)
{CHECKOUT_SESSION_ID} 似乎没有正确解析。知道我做错了什么 - 我已经尝试了我能想到的所有语法更改吗?