-
Notifications
You must be signed in to change notification settings - Fork 732
Open
Description
Cashier Stripe Version
16.0.1
Laravel Version
12.8.1
PHP Version
8.4.4
Database Driver & Version
MySQL Ver 8.4.4 for Linux on aarch64 (Source distribution)
Description
Laravel Cashier doesn't not support ui_mode set to custom. It handles that as hosted mode.
Issue seems to be with create method in Checkout class with the code:
if (isset($data['ui_mode']) && $data['ui_mode'] === 'embedded') {
$data['return_url'] = $sessionOptions['return_url'] ?? route('home');
// Remove return URL for embedded UI mode when no redirection is desired on completion...
if (isset($data['redirect_on_completion']) && $data['redirect_on_completion'] === 'never') {
unset($data['return_url']);
}
} else {
$data['success_url'] = $sessionOptions['success_url'] ?? route('home').'?checkout=success';
$data['cancel_url'] = $sessionOptions['cancel_url'] ?? route('home').'?checkout=cancelled';
}
It should be changed to:
if (isset($data['ui_mode']) && ($data['ui_mode'] === 'embedded' || $data['ui_mode'] === 'custom')) {
$data['return_url'] = $sessionOptions['return_url'] ?? route('home');
// Remove return URL for embedded UI mode when no redirection is desired on completion...
if (isset($data['redirect_on_completion']) && $data['redirect_on_completion'] === 'never' && $data['ui_mode'] === 'embedded') {
unset($data['return_url']);
}
} else {
$data['success_url'] = $sessionOptions['success_url'] ?? route('home').'?checkout=success';
$data['cancel_url'] = $sessionOptions['cancel_url'] ?? route('home').'?checkout=cancelled';
}
Steps To Reproduce
Try to initiate checkout with
$checkout = $user->checkout(['price_1SC...'], [
'ui_mode' => 'custom',
'return_url' => $this->returnUrl,
]);
If you have no 'home' route defined it will throw an error "Route [home] not defined."
If there is 'home' route defined, it will throw an error "The following parameters are not supported with 'ui_mode: custom': cancel_url, success_url."
Expected behaviour would be to return Stripe session object.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Fields
Give feedbackNo fields configured for issues without a type.