Merged in fix/SW-3018-payment-cancel-error (pull request #2339)

Fix/SW-3018 payment cancel error

* fix(SW-3018): cancel payment error when get booking in callback

* fix: wrong status code


Approved-by: Linus Flood
This commit is contained in:
Tobias Johansson
2025-06-11 15:22:39 +00:00
committed by Linus Flood
parent 048a477e52
commit 98983cb44a
2 changed files with 19 additions and 14 deletions

View File

@@ -41,6 +41,22 @@ export default async function PaymentCallbackPage(
notFound()
}
const returnUrl = details(lang)
const searchObject = new URLSearchParams()
let errorMessage = undefined
if (status === PaymentCallbackStatusEnum.Cancel) {
searchObject.set("errorCode", BookingErrorCodeEnum.TransactionCancelled)
return (
<HandleErrorCallback
returnUrl={returnUrl.toString()}
searchObject={searchObject}
status={status}
errorMessage={errorMessage}
/>
)
}
let token = ""
const session = await auth()
if (isValidSession(session)) {
@@ -57,7 +73,6 @@ export default async function PaymentCallbackPage(
}
const booking = await getBooking(confirmationNumber, params.lang, token)
if (!booking) {
notFound()
}
@@ -81,11 +96,6 @@ export default async function PaymentCallbackPage(
)
}
const returnUrl = details(lang)
const searchObject = new URLSearchParams()
let errorMessage = undefined
if (refId) {
try {
const caller = await serverClient()
@@ -112,13 +122,8 @@ export default async function PaymentCallbackPage(
console.error(
`[payment-callback] failed to get booking status for ${confirmationNumber}, status: ${status}`
)
if (status === PaymentCallbackStatusEnum.Cancel) {
searchObject.set("errorCode", BookingErrorCodeEnum.TransactionCancelled)
}
if (status === PaymentCallbackStatusEnum.Error) {
searchObject.set("errorCode", BookingErrorCodeEnum.TransactionFailed)
errorMessage = `Failed to get booking status for ${confirmationNumber}, status: ${status}`
}
searchObject.set("errorCode", BookingErrorCodeEnum.TransactionFailed)
errorMessage = `Failed to get booking status for ${confirmationNumber}, status: ${status}`
}
}

View File

@@ -32,7 +32,7 @@ export async function getBooking(
// If the booking is not found, return null.
// This scenario is expected to happen when a logged in user trying to access a booking that doesn't belong to them.
if (apiResponse.status === 400) {
if (apiResponse.status === 404) {
return null
}