mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-30 01:27:31 +08:00
feat(router): add local bank transfer payment method (#4294)
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
@ -1465,6 +1465,7 @@ impl GetPaymentMethodType for BankTransferData {
|
|||||||
Self::MandiriVaBankTransfer { .. } => api_enums::PaymentMethodType::MandiriVa,
|
Self::MandiriVaBankTransfer { .. } => api_enums::PaymentMethodType::MandiriVa,
|
||||||
Self::Pix {} => api_enums::PaymentMethodType::Pix,
|
Self::Pix {} => api_enums::PaymentMethodType::Pix,
|
||||||
Self::Pse {} => api_enums::PaymentMethodType::Pse,
|
Self::Pse {} => api_enums::PaymentMethodType::Pse,
|
||||||
|
Self::LocalBankTransfer { .. } => api_enums::PaymentMethodType::LocalBankTransfer,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2029,6 +2030,9 @@ pub enum BankTransferData {
|
|||||||
},
|
},
|
||||||
Pix {},
|
Pix {},
|
||||||
Pse {},
|
Pse {},
|
||||||
|
LocalBankTransfer {
|
||||||
|
bank_code: Option<String>,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
impl GetAddressFromPaymentMethodData for BankTransferData {
|
impl GetAddressFromPaymentMethodData for BankTransferData {
|
||||||
@ -2079,7 +2083,7 @@ impl GetAddressFromPaymentMethodData for BankTransferData {
|
|||||||
phone: None,
|
phone: None,
|
||||||
email: Some(billing_details.email.clone()),
|
email: Some(billing_details.email.clone()),
|
||||||
}),
|
}),
|
||||||
Self::Pix {} | Self::Pse {} => None,
|
Self::LocalBankTransfer { .. } | Self::Pix {} | Self::Pse {} => None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1423,6 +1423,7 @@ pub enum PaymentMethodType {
|
|||||||
FamilyMart,
|
FamilyMart,
|
||||||
Seicomart,
|
Seicomart,
|
||||||
PayEasy,
|
PayEasy,
|
||||||
|
LocalBankTransfer,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Indicates the type of payment method. Eg: 'card', 'wallet', etc.
|
/// Indicates the type of payment method. Eg: 'card', 'wallet', etc.
|
||||||
|
|||||||
@ -1842,6 +1842,7 @@ impl From<PaymentMethodType> for PaymentMethod {
|
|||||||
PaymentMethodType::PermataBankTransfer => Self::BankTransfer,
|
PaymentMethodType::PermataBankTransfer => Self::BankTransfer,
|
||||||
PaymentMethodType::Pix => Self::BankTransfer,
|
PaymentMethodType::Pix => Self::BankTransfer,
|
||||||
PaymentMethodType::Pse => Self::BankTransfer,
|
PaymentMethodType::Pse => Self::BankTransfer,
|
||||||
|
PaymentMethodType::LocalBankTransfer => Self::BankTransfer,
|
||||||
PaymentMethodType::PayBright => Self::PayLater,
|
PaymentMethodType::PayBright => Self::PayLater,
|
||||||
PaymentMethodType::Paypal => Self::Wallet,
|
PaymentMethodType::Paypal => Self::Wallet,
|
||||||
PaymentMethodType::PaySafeCard => Self::GiftCard,
|
PaymentMethodType::PaySafeCard => Self::GiftCard,
|
||||||
|
|||||||
@ -186,6 +186,7 @@ pub enum BankTransferType {
|
|||||||
PermataBankTransfer,
|
PermataBankTransfer,
|
||||||
Pix,
|
Pix,
|
||||||
Pse,
|
Pse,
|
||||||
|
LocalBankTransfer,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(
|
#[derive(
|
||||||
|
|||||||
@ -115,6 +115,7 @@ impl From<enums::BankTransferType> for global_enums::PaymentMethodType {
|
|||||||
enums::BankTransferType::DanamonVa => Self::DanamonVa,
|
enums::BankTransferType::DanamonVa => Self::DanamonVa,
|
||||||
enums::BankTransferType::MandiriVa => Self::MandiriVa,
|
enums::BankTransferType::MandiriVa => Self::MandiriVa,
|
||||||
enums::BankTransferType::PermataBankTransfer => Self::PermataBankTransfer,
|
enums::BankTransferType::PermataBankTransfer => Self::PermataBankTransfer,
|
||||||
|
enums::BankTransferType::LocalBankTransfer => Self::LocalBankTransfer,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -143,6 +143,9 @@ impl IntoDirValue for (global_enums::PaymentMethodType, global_enums::PaymentMet
|
|||||||
global_enums::PaymentMethodType::DanamonVa => Ok(dirval!(BankTransferType = DanamonVa)),
|
global_enums::PaymentMethodType::DanamonVa => Ok(dirval!(BankTransferType = DanamonVa)),
|
||||||
global_enums::PaymentMethodType::Indomaret => Ok(dirval!(VoucherType = Indomaret)),
|
global_enums::PaymentMethodType::Indomaret => Ok(dirval!(VoucherType = Indomaret)),
|
||||||
global_enums::PaymentMethodType::MandiriVa => Ok(dirval!(BankTransferType = MandiriVa)),
|
global_enums::PaymentMethodType::MandiriVa => Ok(dirval!(BankTransferType = MandiriVa)),
|
||||||
|
global_enums::PaymentMethodType::LocalBankTransfer => {
|
||||||
|
Ok(dirval!(BankTransferType = LocalBankTransfer))
|
||||||
|
}
|
||||||
global_enums::PaymentMethodType::PermataBankTransfer => {
|
global_enums::PaymentMethodType::PermataBankTransfer => {
|
||||||
Ok(dirval!(BankTransferType = PermataBankTransfer))
|
Ok(dirval!(BankTransferType = PermataBankTransfer))
|
||||||
}
|
}
|
||||||
|
|||||||
@ -262,6 +262,9 @@ impl IntoDirValue for (api_enums::PaymentMethodType, api_enums::PaymentMethod) {
|
|||||||
api_enums::PaymentMethodType::DanamonVa => Ok(dirval!(BankTransferType = DanamonVa)),
|
api_enums::PaymentMethodType::DanamonVa => Ok(dirval!(BankTransferType = DanamonVa)),
|
||||||
api_enums::PaymentMethodType::Indomaret => Ok(dirval!(VoucherType = Indomaret)),
|
api_enums::PaymentMethodType::Indomaret => Ok(dirval!(VoucherType = Indomaret)),
|
||||||
api_enums::PaymentMethodType::MandiriVa => Ok(dirval!(BankTransferType = MandiriVa)),
|
api_enums::PaymentMethodType::MandiriVa => Ok(dirval!(BankTransferType = MandiriVa)),
|
||||||
|
api_enums::PaymentMethodType::LocalBankTransfer => {
|
||||||
|
Ok(dirval!(BankTransferType = LocalBankTransfer))
|
||||||
|
}
|
||||||
api_enums::PaymentMethodType::PermataBankTransfer => {
|
api_enums::PaymentMethodType::PermataBankTransfer => {
|
||||||
Ok(dirval!(BankTransferType = PermataBankTransfer))
|
Ok(dirval!(BankTransferType = PermataBankTransfer))
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@ fn main() {
|
|||||||
// Set thread stack size to 8 MiB for debug builds
|
// Set thread stack size to 8 MiB for debug builds
|
||||||
// Reference: https://doc.rust-lang.org/std/thread/#stack-size
|
// Reference: https://doc.rust-lang.org/std/thread/#stack-size
|
||||||
#[cfg(debug_assertions)]
|
#[cfg(debug_assertions)]
|
||||||
println!("cargo:rustc-env=RUST_MIN_STACK=8388608"); // 8 * 1024 * 1024 = 8 MiB
|
println!("cargo:rustc-env=RUST_MIN_STACK=18388608"); // 8 * 1024 * 1024 = 8 MiB
|
||||||
|
|
||||||
#[cfg(feature = "vergen")]
|
#[cfg(feature = "vergen")]
|
||||||
router_env::vergen::generate_cargo_instructions();
|
router_env::vergen::generate_cargo_instructions();
|
||||||
|
|||||||
@ -202,6 +202,7 @@ impl ConnectorValidation for Adyen {
|
|||||||
| PaymentMethodType::Becs
|
| PaymentMethodType::Becs
|
||||||
| PaymentMethodType::ClassicReward
|
| PaymentMethodType::ClassicReward
|
||||||
| PaymentMethodType::Pse
|
| PaymentMethodType::Pse
|
||||||
|
| PaymentMethodType::LocalBankTransfer
|
||||||
| PaymentMethodType::Efecty
|
| PaymentMethodType::Efecty
|
||||||
| PaymentMethodType::PagoEfectivo
|
| PaymentMethodType::PagoEfectivo
|
||||||
| PaymentMethodType::RedCompra
|
| PaymentMethodType::RedCompra
|
||||||
|
|||||||
@ -2484,6 +2484,7 @@ impl<'a> TryFrom<&api_models::payments::BankTransferData> for AdyenPaymentMethod
|
|||||||
| api_models::payments::BankTransferData::SepaBankTransfer { .. }
|
| api_models::payments::BankTransferData::SepaBankTransfer { .. }
|
||||||
| api_models::payments::BankTransferData::BacsBankTransfer { .. }
|
| api_models::payments::BankTransferData::BacsBankTransfer { .. }
|
||||||
| api_models::payments::BankTransferData::MultibancoBankTransfer { .. }
|
| api_models::payments::BankTransferData::MultibancoBankTransfer { .. }
|
||||||
|
| api_models::payments::BankTransferData::LocalBankTransfer { .. }
|
||||||
| payments::BankTransferData::Pse {} => Err(errors::ConnectorError::NotImplemented(
|
| payments::BankTransferData::Pse {} => Err(errors::ConnectorError::NotImplemented(
|
||||||
utils::get_unimplemented_payment_method_error_message("Adyen"),
|
utils::get_unimplemented_payment_method_error_message("Adyen"),
|
||||||
)
|
)
|
||||||
|
|||||||
@ -403,6 +403,7 @@ impl
|
|||||||
| common_enums::PaymentMethodType::WeChatPay
|
| common_enums::PaymentMethodType::WeChatPay
|
||||||
| common_enums::PaymentMethodType::SevenEleven
|
| common_enums::PaymentMethodType::SevenEleven
|
||||||
| common_enums::PaymentMethodType::Lawson
|
| common_enums::PaymentMethodType::Lawson
|
||||||
|
| common_enums::PaymentMethodType::LocalBankTransfer
|
||||||
| common_enums::PaymentMethodType::MiniStop
|
| common_enums::PaymentMethodType::MiniStop
|
||||||
| common_enums::PaymentMethodType::FamilyMart
|
| common_enums::PaymentMethodType::FamilyMart
|
||||||
| common_enums::PaymentMethodType::Seicomart
|
| common_enums::PaymentMethodType::Seicomart
|
||||||
|
|||||||
@ -690,7 +690,8 @@ impl TryFrom<&api_models::payments::BankTransferData> for PaypalPaymentsRequest
|
|||||||
| api_models::payments::BankTransferData::DanamonVaBankTransfer { .. }
|
| api_models::payments::BankTransferData::DanamonVaBankTransfer { .. }
|
||||||
| api_models::payments::BankTransferData::MandiriVaBankTransfer { .. }
|
| api_models::payments::BankTransferData::MandiriVaBankTransfer { .. }
|
||||||
| api_models::payments::BankTransferData::Pix {}
|
| api_models::payments::BankTransferData::Pix {}
|
||||||
| api_models::payments::BankTransferData::Pse {} => {
|
| api_models::payments::BankTransferData::Pse {}
|
||||||
|
| api_models::payments::BankTransferData::LocalBankTransfer { .. } => {
|
||||||
Err(errors::ConnectorError::NotImplemented(
|
Err(errors::ConnectorError::NotImplemented(
|
||||||
utils::get_unimplemented_payment_method_error_message("Paypal"),
|
utils::get_unimplemented_payment_method_error_message("Paypal"),
|
||||||
)
|
)
|
||||||
|
|||||||
@ -232,10 +232,13 @@ impl TryFrom<&api_models::payments::BankTransferData> for Shift4PaymentMethod {
|
|||||||
| payments::BankTransferData::DanamonVaBankTransfer { .. }
|
| payments::BankTransferData::DanamonVaBankTransfer { .. }
|
||||||
| payments::BankTransferData::MandiriVaBankTransfer { .. }
|
| payments::BankTransferData::MandiriVaBankTransfer { .. }
|
||||||
| payments::BankTransferData::Pix {}
|
| payments::BankTransferData::Pix {}
|
||||||
| payments::BankTransferData::Pse {} => Err(errors::ConnectorError::NotImplemented(
|
| payments::BankTransferData::Pse {}
|
||||||
utils::get_unimplemented_payment_method_error_message("Shift4"),
|
| payments::BankTransferData::LocalBankTransfer { .. } => {
|
||||||
)
|
Err(errors::ConnectorError::NotImplemented(
|
||||||
.into()),
|
utils::get_unimplemented_payment_method_error_message("Shift4"),
|
||||||
|
)
|
||||||
|
.into())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -705,6 +705,7 @@ impl TryFrom<enums::PaymentMethodType> for StripePaymentMethodType {
|
|||||||
| enums::PaymentMethodType::FamilyMart
|
| enums::PaymentMethodType::FamilyMart
|
||||||
| enums::PaymentMethodType::Seicomart
|
| enums::PaymentMethodType::Seicomart
|
||||||
| enums::PaymentMethodType::PayEasy
|
| enums::PaymentMethodType::PayEasy
|
||||||
|
| enums::PaymentMethodType::LocalBankTransfer
|
||||||
| enums::PaymentMethodType::Walley => Err(errors::ConnectorError::NotImplemented(
|
| enums::PaymentMethodType::Walley => Err(errors::ConnectorError::NotImplemented(
|
||||||
connector_util::get_unimplemented_payment_method_error_message("stripe"),
|
connector_util::get_unimplemented_payment_method_error_message("stripe"),
|
||||||
)
|
)
|
||||||
@ -1413,6 +1414,7 @@ fn create_stripe_payment_method(
|
|||||||
)
|
)
|
||||||
.into()),
|
.into()),
|
||||||
payments::BankTransferData::Pse {}
|
payments::BankTransferData::Pse {}
|
||||||
|
| payments::BankTransferData::LocalBankTransfer { .. }
|
||||||
| payments::BankTransferData::PermataBankTransfer { .. }
|
| payments::BankTransferData::PermataBankTransfer { .. }
|
||||||
| payments::BankTransferData::BcaBankTransfer { .. }
|
| payments::BankTransferData::BcaBankTransfer { .. }
|
||||||
| payments::BankTransferData::BniVaBankTransfer { .. }
|
| payments::BankTransferData::BniVaBankTransfer { .. }
|
||||||
@ -3266,6 +3268,7 @@ impl TryFrom<&types::PaymentsPreProcessingRouterData> for StripeCreditTransferSo
|
|||||||
| payments::BankTransferData::CimbVaBankTransfer { .. }
|
| payments::BankTransferData::CimbVaBankTransfer { .. }
|
||||||
| payments::BankTransferData::DanamonVaBankTransfer { .. }
|
| payments::BankTransferData::DanamonVaBankTransfer { .. }
|
||||||
| payments::BankTransferData::MandiriVaBankTransfer { .. }
|
| payments::BankTransferData::MandiriVaBankTransfer { .. }
|
||||||
|
| payments::BankTransferData::LocalBankTransfer { .. }
|
||||||
| payments::BankTransferData::Pix { .. }
|
| payments::BankTransferData::Pix { .. }
|
||||||
| payments::BankTransferData::Pse { .. } => {
|
| payments::BankTransferData::Pse { .. } => {
|
||||||
Err(errors::ConnectorError::NotImplemented(
|
Err(errors::ConnectorError::NotImplemented(
|
||||||
@ -3723,6 +3726,7 @@ impl
|
|||||||
| payments::BankTransferData::BriVaBankTransfer { .. }
|
| payments::BankTransferData::BriVaBankTransfer { .. }
|
||||||
| payments::BankTransferData::CimbVaBankTransfer { .. }
|
| payments::BankTransferData::CimbVaBankTransfer { .. }
|
||||||
| payments::BankTransferData::DanamonVaBankTransfer { .. }
|
| payments::BankTransferData::DanamonVaBankTransfer { .. }
|
||||||
|
| payments::BankTransferData::LocalBankTransfer { .. }
|
||||||
| payments::BankTransferData::MandiriVaBankTransfer { .. } => {
|
| payments::BankTransferData::MandiriVaBankTransfer { .. } => {
|
||||||
Err(errors::ConnectorError::NotImplemented(
|
Err(errors::ConnectorError::NotImplemented(
|
||||||
connector_util::get_unimplemented_payment_method_error_message("stripe"),
|
connector_util::get_unimplemented_payment_method_error_message("stripe"),
|
||||||
|
|||||||
@ -358,6 +358,7 @@ impl
|
|||||||
| api_models::payments::BankTransferData::BriVaBankTransfer { .. }
|
| api_models::payments::BankTransferData::BriVaBankTransfer { .. }
|
||||||
| api_models::payments::BankTransferData::CimbVaBankTransfer { .. }
|
| api_models::payments::BankTransferData::CimbVaBankTransfer { .. }
|
||||||
| api_models::payments::BankTransferData::DanamonVaBankTransfer { .. }
|
| api_models::payments::BankTransferData::DanamonVaBankTransfer { .. }
|
||||||
|
| api_models::payments::BankTransferData::LocalBankTransfer { .. }
|
||||||
| api_models::payments::BankTransferData::MandiriVaBankTransfer { .. } => {
|
| api_models::payments::BankTransferData::MandiriVaBankTransfer { .. } => {
|
||||||
Err(errors::ConnectorError::NotImplemented(
|
Err(errors::ConnectorError::NotImplemented(
|
||||||
utils::get_unimplemented_payment_method_error_message("Zen"),
|
utils::get_unimplemented_payment_method_error_message("Zen"),
|
||||||
|
|||||||
@ -2204,6 +2204,7 @@ pub fn validate_payment_method_type_against_payment_method(
|
|||||||
| api_enums::PaymentMethodType::CimbVa
|
| api_enums::PaymentMethodType::CimbVa
|
||||||
| api_enums::PaymentMethodType::DanamonVa
|
| api_enums::PaymentMethodType::DanamonVa
|
||||||
| api_enums::PaymentMethodType::MandiriVa
|
| api_enums::PaymentMethodType::MandiriVa
|
||||||
|
| api_enums::PaymentMethodType::LocalBankTransfer
|
||||||
),
|
),
|
||||||
api_enums::PaymentMethod::BankDebit => matches!(
|
api_enums::PaymentMethod::BankDebit => matches!(
|
||||||
payment_method_type,
|
payment_method_type,
|
||||||
|
|||||||
@ -453,6 +453,7 @@ impl ForeignFrom<api_enums::PaymentMethodType> for api_enums::PaymentMethod {
|
|||||||
| api_enums::PaymentMethodType::CimbVa
|
| api_enums::PaymentMethodType::CimbVa
|
||||||
| api_enums::PaymentMethodType::DanamonVa
|
| api_enums::PaymentMethodType::DanamonVa
|
||||||
| api_enums::PaymentMethodType::MandiriVa
|
| api_enums::PaymentMethodType::MandiriVa
|
||||||
|
| api_enums::PaymentMethodType::LocalBankTransfer
|
||||||
| api_enums::PaymentMethodType::Pix => Self::BankTransfer,
|
| api_enums::PaymentMethodType::Pix => Self::BankTransfer,
|
||||||
api_enums::PaymentMethodType::Givex | api_enums::PaymentMethodType::PaySafeCard => {
|
api_enums::PaymentMethodType::Givex | api_enums::PaymentMethodType::PaySafeCard => {
|
||||||
Self::GiftCard
|
Self::GiftCard
|
||||||
|
|||||||
@ -6242,6 +6242,23 @@
|
|||||||
"type": "object"
|
"type": "object"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"local_bank_transfer"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"local_bank_transfer": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"bank_code": {
|
||||||
|
"type": "string",
|
||||||
|
"nullable": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -12870,7 +12887,8 @@
|
|||||||
"mini_stop",
|
"mini_stop",
|
||||||
"family_mart",
|
"family_mart",
|
||||||
"seicomart",
|
"seicomart",
|
||||||
"pay_easy"
|
"pay_easy",
|
||||||
|
"local_bank_transfer"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"PaymentMethodUpdate": {
|
"PaymentMethodUpdate": {
|
||||||
|
|||||||
Reference in New Issue
Block a user