feat(connector): [BOA/CYBERSOURCE] Fix Status Mapping for Terminal St… (#3031)

This commit is contained in:
DEEPANSHU BANSAL
2023-12-01 17:48:40 +05:30
committed by GitHub
parent 092ec73b3c
commit 95876b0ce0
2 changed files with 11 additions and 4 deletions

View File

@ -442,11 +442,18 @@ impl ForeignFrom<(BankofamericaPaymentStatus, bool)> for enums::AttemptStatus {
| BankofamericaPaymentStatus::AuthorizedPendingReview => {
if auto_capture {
// Because BankOfAmerica will return Payment Status as Authorized even in AutoCapture Payment
Self::Pending
Self::Charged
} else {
Self::Authorized
}
}
BankofamericaPaymentStatus::Pending => {
if auto_capture {
Self::Charged
} else {
Self::Pending
}
}
BankofamericaPaymentStatus::Succeeded | BankofamericaPaymentStatus::Transmitted => {
Self::Charged
}
@ -456,7 +463,6 @@ impl ForeignFrom<(BankofamericaPaymentStatus, bool)> for enums::AttemptStatus {
BankofamericaPaymentStatus::Failed | BankofamericaPaymentStatus::Declined => {
Self::Failure
}
BankofamericaPaymentStatus::Pending => Self::Pending,
}
}
}

View File

@ -670,8 +670,9 @@ pub struct ApplicationInformation {
fn get_payment_status(is_capture: bool, status: enums::AttemptStatus) -> enums::AttemptStatus {
let is_authorized = matches!(status, enums::AttemptStatus::Authorized);
if is_capture && is_authorized {
return enums::AttemptStatus::Pending;
let is_pending = matches!(status, enums::AttemptStatus::Pending);
if is_capture && (is_authorized || is_pending) {
return enums::AttemptStatus::Charged;
}
status
}