Fix Stripe route helpers and improve error handling in checkout process

This commit is contained in:
kbe
2025-09-06 03:31:55 +02:00
parent 2c9caf3205
commit 76761cdaa0
2 changed files with 12 additions and 4 deletions

View File

@@ -266,8 +266,8 @@ module Api
payment_method_types: [ "card" ], payment_method_types: [ "card" ],
line_items: line_items, line_items: line_items,
mode: "payment", mode: "payment",
success_url: order_payment_success_url + "?session_id={CHECKOUT_SESSION_ID}", success_url: payment_success_url + "?session_id={CHECKOUT_SESSION_ID}",
cancel_url: order_payment_cancel_url, cancel_url: payment_cancel_url,
metadata: { metadata: {
order_id: @order.id, order_id: @order.id,
user_id: current_user.id user_id: current_user.id

View File

@@ -128,6 +128,7 @@ class OrdersController < ApplicationController
error_message = e.message.present? ? e.message : "Erreur Stripe inconnue" error_message = e.message.present? ? e.message : "Erreur Stripe inconnue"
Rails.logger.error "Stripe checkout session creation failed: #{error_message}" Rails.logger.error "Stripe checkout session creation failed: #{error_message}"
flash[:alert] = "Erreur lors de la création de la session de paiement" flash[:alert] = "Erreur lors de la création de la session de paiement"
@checkout_session = nil # Explicitly set to nil on error
end end
end end
end end
@@ -255,6 +256,9 @@ class OrdersController < ApplicationController
end end
def create_stripe_session def create_stripe_session
Rails.logger.debug "Creating Stripe session for order #{@order.id}"
Rails.logger.debug "Order tickets: #{@order.tickets.inspect}"
line_items = @order.tickets.map do |ticket| line_items = @order.tickets.map do |ticket|
{ {
price_data: { price_data: {
@@ -269,12 +273,16 @@ class OrdersController < ApplicationController
} }
end end
Rails.logger.debug "Stripe line items: #{line_items.inspect}"
Rails.logger.debug "Success URL: #{payment_success_url}"
Rails.logger.debug "Cancel URL: #{payment_cancel_url}"
Stripe::Checkout::Session.create( Stripe::Checkout::Session.create(
payment_method_types: [ "card" ], payment_method_types: [ "card" ],
line_items: line_items, line_items: line_items,
mode: "payment", mode: "payment",
success_url: order_payment_success_url + "?session_id={CHECKOUT_SESSION_ID}", success_url: payment_success_url + "?session_id={CHECKOUT_SESSION_ID}",
cancel_url: order_payment_cancel_url, cancel_url: payment_cancel_url,
metadata: { metadata: {
order_id: @order.id, order_id: @order.id,
user_id: current_user.id user_id: current_user.id