mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-11-01 11:06:50 +08:00
feat(events): Add payment metadata to hyperswitch-payment-intent-events (#5170)
Co-authored-by: Narayan Bhat <48803246+Narayanbhat166@users.noreply.github.com> Co-authored-by: Sampras Lopes <Sampras.lopes@juspay.in> Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
@ -261,7 +261,7 @@ pub struct StripePaymentIntentRequest {
|
||||
pub shipping: Option<Shipping>,
|
||||
pub statement_descriptor: Option<String>,
|
||||
pub statement_descriptor_suffix: Option<String>,
|
||||
pub metadata: Option<SecretSerdeValue>,
|
||||
pub metadata: Option<serde_json::Value>,
|
||||
pub client_secret: Option<masking::Secret<String>>,
|
||||
pub payment_method_options: Option<StripePaymentMethodOptions>,
|
||||
pub merchant_connector_details: Option<admin::MerchantConnectorDetailsWrap>,
|
||||
@ -478,7 +478,7 @@ pub struct StripePaymentIntentResponse {
|
||||
pub customer: Option<id_type::CustomerId>,
|
||||
pub refunds: Option<Vec<stripe_refunds::StripeRefundResponse>>,
|
||||
pub mandate: Option<String>,
|
||||
pub metadata: Option<SecretSerdeValue>,
|
||||
pub metadata: Option<serde_json::Value>,
|
||||
pub charges: Charges,
|
||||
pub connector: Option<String>,
|
||||
pub description: Option<String>,
|
||||
|
||||
@ -458,7 +458,7 @@ pub struct StripeSetupIntentResponse {
|
||||
pub object: String,
|
||||
pub status: StripeSetupStatus,
|
||||
pub client_secret: Option<masking::Secret<String>>,
|
||||
pub metadata: Option<secret::SecretSerdeValue>,
|
||||
pub metadata: Option<Value>,
|
||||
#[serde(with = "common_utils::custom_serde::iso8601::option")]
|
||||
pub created: Option<time::PrimitiveDateTime>,
|
||||
pub customer: Option<id_type::CustomerId>,
|
||||
|
||||
@ -2610,7 +2610,7 @@ impl<'a>
|
||||
channel: None,
|
||||
shopper_statement: item.router_data.request.statement_descriptor.clone(),
|
||||
shopper_ip: item.router_data.request.get_ip_address_as_optional(),
|
||||
metadata: item.router_data.request.metadata.clone(),
|
||||
metadata: item.router_data.request.metadata.clone().map(Into::into),
|
||||
merchant_order_reference: item.router_data.request.merchant_order_reference_id.clone(),
|
||||
})
|
||||
}
|
||||
@ -2673,7 +2673,7 @@ impl<'a>
|
||||
channel: None,
|
||||
shopper_statement: item.router_data.request.statement_descriptor.clone(),
|
||||
shopper_ip: item.router_data.request.get_ip_address_as_optional(),
|
||||
metadata: item.router_data.request.metadata.clone(),
|
||||
metadata: item.router_data.request.metadata.clone().map(Into::into),
|
||||
merchant_order_reference: item.router_data.request.merchant_order_reference_id.clone(),
|
||||
})
|
||||
}
|
||||
@ -2727,7 +2727,7 @@ impl<'a>
|
||||
channel: None,
|
||||
shopper_statement: item.router_data.request.statement_descriptor.clone(),
|
||||
shopper_ip: item.router_data.request.get_ip_address_as_optional(),
|
||||
metadata: item.router_data.request.metadata.clone(),
|
||||
metadata: item.router_data.request.metadata.clone().map(Into::into),
|
||||
merchant_order_reference: item.router_data.request.merchant_order_reference_id.clone(),
|
||||
};
|
||||
Ok(request)
|
||||
@ -2782,7 +2782,7 @@ impl<'a>
|
||||
channel: None,
|
||||
shopper_statement: item.router_data.request.statement_descriptor.clone(),
|
||||
shopper_ip: item.router_data.request.get_ip_address_as_optional(),
|
||||
metadata: item.router_data.request.metadata.clone(),
|
||||
metadata: item.router_data.request.metadata.clone().map(Into::into),
|
||||
merchant_order_reference: item.router_data.request.merchant_order_reference_id.clone(),
|
||||
};
|
||||
Ok(request)
|
||||
@ -2833,7 +2833,7 @@ impl<'a>
|
||||
channel: None,
|
||||
shopper_statement: item.router_data.request.statement_descriptor.clone(),
|
||||
shopper_ip: item.router_data.request.get_ip_address_as_optional(),
|
||||
metadata: item.router_data.request.metadata.clone(),
|
||||
metadata: item.router_data.request.metadata.clone().map(Into::into),
|
||||
merchant_order_reference: item.router_data.request.merchant_order_reference_id.clone(),
|
||||
};
|
||||
Ok(request)
|
||||
@ -2884,7 +2884,7 @@ impl<'a>
|
||||
social_security_number: None,
|
||||
shopper_statement: item.router_data.request.statement_descriptor.clone(),
|
||||
shopper_ip: item.router_data.request.get_ip_address_as_optional(),
|
||||
metadata: item.router_data.request.metadata.clone(),
|
||||
metadata: item.router_data.request.metadata.clone().map(Into::into),
|
||||
merchant_order_reference: item.router_data.request.merchant_order_reference_id.clone(),
|
||||
};
|
||||
Ok(request)
|
||||
@ -2945,7 +2945,7 @@ impl<'a>
|
||||
channel: None,
|
||||
shopper_statement: item.router_data.request.statement_descriptor.clone(),
|
||||
shopper_ip: item.router_data.request.get_ip_address_as_optional(),
|
||||
metadata: item.router_data.request.metadata.clone(),
|
||||
metadata: item.router_data.request.metadata.clone().map(Into::into),
|
||||
merchant_order_reference: item.router_data.request.merchant_order_reference_id.clone(),
|
||||
})
|
||||
}
|
||||
@ -3041,7 +3041,7 @@ impl<'a>
|
||||
channel,
|
||||
shopper_statement: item.router_data.request.statement_descriptor.clone(),
|
||||
shopper_ip: item.router_data.request.get_ip_address_as_optional(),
|
||||
metadata: item.router_data.request.metadata.clone(),
|
||||
metadata: item.router_data.request.metadata.clone().map(Into::into),
|
||||
merchant_order_reference: item.router_data.request.merchant_order_reference_id.clone(),
|
||||
})
|
||||
}
|
||||
@ -3117,7 +3117,7 @@ impl<'a>
|
||||
channel: None,
|
||||
shopper_statement: item.router_data.request.statement_descriptor.clone(),
|
||||
shopper_ip: item.router_data.request.get_ip_address_as_optional(),
|
||||
metadata: item.router_data.request.metadata.clone(),
|
||||
metadata: item.router_data.request.metadata.clone().map(Into::into),
|
||||
merchant_order_reference: item.router_data.request.merchant_order_reference_id.clone(),
|
||||
})
|
||||
}
|
||||
@ -3176,7 +3176,7 @@ impl<'a>
|
||||
social_security_number: None,
|
||||
shopper_statement: item.router_data.request.statement_descriptor.clone(),
|
||||
shopper_ip: item.router_data.request.get_ip_address_as_optional(),
|
||||
metadata: item.router_data.request.metadata.clone(),
|
||||
metadata: item.router_data.request.metadata.clone().map(Into::into),
|
||||
merchant_order_reference: item.router_data.request.merchant_order_reference_id.clone(),
|
||||
})
|
||||
}
|
||||
|
||||
@ -941,10 +941,12 @@ impl
|
||||
specification_version: three_ds_info.three_ds_data.specification_version,
|
||||
});
|
||||
|
||||
let merchant_defined_information =
|
||||
item.router_data.request.metadata.clone().map(|metadata| {
|
||||
Vec::<MerchantDefinedInformation>::foreign_from(metadata.peek().to_owned())
|
||||
});
|
||||
let merchant_defined_information = item
|
||||
.router_data
|
||||
.request
|
||||
.metadata
|
||||
.clone()
|
||||
.map(Vec::<MerchantDefinedInformation>::foreign_from);
|
||||
|
||||
Ok(Self {
|
||||
processing_information,
|
||||
@ -976,10 +978,12 @@ impl
|
||||
let payment_information = PaymentInformation::try_from(&ccard)?;
|
||||
let processing_information = ProcessingInformation::try_from((item, None, None))?;
|
||||
let client_reference_information = ClientReferenceInformation::from(item);
|
||||
let merchant_defined_information =
|
||||
item.router_data.request.metadata.clone().map(|metadata| {
|
||||
Vec::<MerchantDefinedInformation>::foreign_from(metadata.peek().to_owned())
|
||||
});
|
||||
let merchant_defined_information = item
|
||||
.router_data
|
||||
.request
|
||||
.metadata
|
||||
.clone()
|
||||
.map(Vec::<MerchantDefinedInformation>::foreign_from);
|
||||
|
||||
Ok(Self {
|
||||
processing_information,
|
||||
@ -1017,10 +1021,12 @@ impl
|
||||
))?;
|
||||
let client_reference_information = ClientReferenceInformation::from(item);
|
||||
let payment_information = PaymentInformation::try_from(&apple_pay_data)?;
|
||||
let merchant_defined_information =
|
||||
item.router_data.request.metadata.clone().map(|metadata| {
|
||||
Vec::<MerchantDefinedInformation>::foreign_from(metadata.peek().to_owned())
|
||||
});
|
||||
let merchant_defined_information = item
|
||||
.router_data
|
||||
.request
|
||||
.metadata
|
||||
.clone()
|
||||
.map(Vec::<MerchantDefinedInformation>::foreign_from);
|
||||
let ucaf_collection_indicator = match apple_pay_wallet_data
|
||||
.payment_method
|
||||
.network
|
||||
@ -1068,10 +1074,12 @@ impl
|
||||
let processing_information =
|
||||
ProcessingInformation::try_from((item, Some(PaymentSolution::GooglePay), None))?;
|
||||
let client_reference_information = ClientReferenceInformation::from(item);
|
||||
let merchant_defined_information =
|
||||
item.router_data.request.metadata.clone().map(|metadata| {
|
||||
Vec::<MerchantDefinedInformation>::foreign_from(metadata.peek().to_owned())
|
||||
});
|
||||
let merchant_defined_information = item
|
||||
.router_data
|
||||
.request
|
||||
.metadata
|
||||
.clone()
|
||||
.map(Vec::<MerchantDefinedInformation>::foreign_from);
|
||||
|
||||
Ok(Self {
|
||||
processing_information,
|
||||
@ -1132,7 +1140,7 @@ impl TryFrom<&BankOfAmericaRouterData<&types::PaymentsAuthorizeRouterData>>
|
||||
let merchant_defined_information =
|
||||
item.router_data.request.metadata.clone().map(|metadata| {
|
||||
Vec::<MerchantDefinedInformation>::foreign_from(
|
||||
metadata.peek().to_owned(),
|
||||
metadata,
|
||||
)
|
||||
});
|
||||
let ucaf_collection_indicator = match apple_pay_data
|
||||
@ -1307,10 +1315,12 @@ impl
|
||||
payment_instrument,
|
||||
}));
|
||||
let client_reference_information = ClientReferenceInformation::from(item);
|
||||
let merchant_defined_information =
|
||||
item.router_data.request.metadata.clone().map(|metadata| {
|
||||
Vec::<MerchantDefinedInformation>::foreign_from(metadata.peek().to_owned())
|
||||
});
|
||||
let merchant_defined_information = item
|
||||
.router_data
|
||||
.request
|
||||
.metadata
|
||||
.clone()
|
||||
.map(Vec::<MerchantDefinedInformation>::foreign_from);
|
||||
Ok(Self {
|
||||
processing_information,
|
||||
payment_information,
|
||||
@ -2610,10 +2620,12 @@ impl TryFrom<&BankOfAmericaRouterData<&types::PaymentsCaptureRouterData>>
|
||||
fn try_from(
|
||||
value: &BankOfAmericaRouterData<&types::PaymentsCaptureRouterData>,
|
||||
) -> Result<Self, Self::Error> {
|
||||
let merchant_defined_information =
|
||||
value.router_data.request.metadata.clone().map(|metadata| {
|
||||
Vec::<MerchantDefinedInformation>::foreign_from(metadata.peek().to_owned())
|
||||
});
|
||||
let merchant_defined_information = value
|
||||
.router_data
|
||||
.request
|
||||
.metadata
|
||||
.clone()
|
||||
.map(Vec::<MerchantDefinedInformation>::foreign_from);
|
||||
Ok(Self {
|
||||
order_information: OrderInformation {
|
||||
amount_details: Amount {
|
||||
@ -2653,10 +2665,12 @@ impl TryFrom<&BankOfAmericaRouterData<&types::PaymentsCancelRouterData>>
|
||||
fn try_from(
|
||||
value: &BankOfAmericaRouterData<&types::PaymentsCancelRouterData>,
|
||||
) -> Result<Self, Self::Error> {
|
||||
let merchant_defined_information =
|
||||
value.router_data.request.metadata.clone().map(|metadata| {
|
||||
Vec::<MerchantDefinedInformation>::foreign_from(metadata.peek().to_owned())
|
||||
});
|
||||
let merchant_defined_information = value
|
||||
.router_data
|
||||
.request
|
||||
.metadata
|
||||
.clone()
|
||||
.map(Vec::<MerchantDefinedInformation>::foreign_from);
|
||||
Ok(Self {
|
||||
client_reference_information: ClientReferenceInformation {
|
||||
code: Some(value.router_data.connector_request_reference_id.clone()),
|
||||
|
||||
@ -202,7 +202,7 @@ impl TryFrom<&BillwerkRouterData<&types::PaymentsAuthorizeRouterData>> for Billw
|
||||
first_name: item.router_data.get_optional_billing_first_name(),
|
||||
last_name: item.router_data.get_optional_billing_last_name(),
|
||||
},
|
||||
metadata: item.router_data.request.metadata.clone(),
|
||||
metadata: item.router_data.request.metadata.clone().map(Into::into),
|
||||
settle: item.router_data.request.is_auto_capture()?,
|
||||
})
|
||||
}
|
||||
|
||||
@ -258,7 +258,7 @@ impl TryFrom<&BluesnapRouterData<&types::PaymentsAuthorizeRouterData>> for Blues
|
||||
.metadata
|
||||
.as_ref()
|
||||
.map(|metadata| BluesnapMetadata {
|
||||
meta_data: Vec::<RequestMetadata>::foreign_from(metadata.peek().to_owned()),
|
||||
meta_data: Vec::<RequestMetadata>::foreign_from(metadata.to_owned()),
|
||||
});
|
||||
|
||||
let (payment_method, card_holder_info) = match item
|
||||
@ -609,7 +609,7 @@ impl TryFrom<&BluesnapRouterData<&types::PaymentsCompleteAuthorizeRouterData>>
|
||||
.metadata
|
||||
.as_ref()
|
||||
.map(|metadata| BluesnapMetadata {
|
||||
meta_data: Vec::<RequestMetadata>::foreign_from(metadata.peek().to_owned()),
|
||||
meta_data: Vec::<RequestMetadata>::foreign_from(metadata.to_owned()),
|
||||
});
|
||||
|
||||
let token = item
|
||||
|
||||
@ -418,7 +418,7 @@ impl TryFrom<&CheckoutRouterData<&types::PaymentsAuthorizeRouterData>> for Payme
|
||||
let connector_auth = &item.router_data.connector_auth_type;
|
||||
let auth_type: CheckoutAuthType = connector_auth.try_into()?;
|
||||
let processing_channel_id = auth_type.processing_channel_id;
|
||||
let metadata = item.router_data.request.metadata.clone();
|
||||
let metadata = item.router_data.request.metadata.clone().map(Into::into);
|
||||
Ok(Self {
|
||||
source: source_var,
|
||||
amount: item.amount.to_owned(),
|
||||
|
||||
@ -991,10 +991,12 @@ impl
|
||||
|
||||
let processing_information = ProcessingInformation::try_from((item, None, card_type))?;
|
||||
let client_reference_information = ClientReferenceInformation::from(item);
|
||||
let merchant_defined_information =
|
||||
item.router_data.request.metadata.clone().map(|metadata| {
|
||||
Vec::<MerchantDefinedInformation>::foreign_from(metadata.peek().to_owned())
|
||||
});
|
||||
let merchant_defined_information = item
|
||||
.router_data
|
||||
.request
|
||||
.metadata
|
||||
.clone()
|
||||
.map(Vec::<MerchantDefinedInformation>::foreign_from);
|
||||
|
||||
let consumer_authentication_information = item
|
||||
.router_data
|
||||
@ -1097,10 +1099,12 @@ impl
|
||||
veres_enrolled: None,
|
||||
});
|
||||
|
||||
let merchant_defined_information =
|
||||
item.router_data.request.metadata.clone().map(|metadata| {
|
||||
Vec::<MerchantDefinedInformation>::foreign_from(metadata.peek().to_owned())
|
||||
});
|
||||
let merchant_defined_information = item
|
||||
.router_data
|
||||
.request
|
||||
.metadata
|
||||
.clone()
|
||||
.map(Vec::<MerchantDefinedInformation>::foreign_from);
|
||||
|
||||
Ok(Self {
|
||||
processing_information,
|
||||
@ -1149,10 +1153,12 @@ impl
|
||||
expiration_month,
|
||||
},
|
||||
}));
|
||||
let merchant_defined_information =
|
||||
item.router_data.request.metadata.clone().map(|metadata| {
|
||||
Vec::<MerchantDefinedInformation>::foreign_from(metadata.peek().to_owned())
|
||||
});
|
||||
let merchant_defined_information = item
|
||||
.router_data
|
||||
.request
|
||||
.metadata
|
||||
.clone()
|
||||
.map(Vec::<MerchantDefinedInformation>::foreign_from);
|
||||
let ucaf_collection_indicator = match apple_pay_wallet_data
|
||||
.payment_method
|
||||
.network
|
||||
@ -1211,10 +1217,12 @@ impl
|
||||
let processing_information =
|
||||
ProcessingInformation::try_from((item, Some(PaymentSolution::GooglePay), None))?;
|
||||
let client_reference_information = ClientReferenceInformation::from(item);
|
||||
let merchant_defined_information =
|
||||
item.router_data.request.metadata.clone().map(|metadata| {
|
||||
Vec::<MerchantDefinedInformation>::foreign_from(metadata.peek().to_owned())
|
||||
});
|
||||
let merchant_defined_information = item
|
||||
.router_data
|
||||
.request
|
||||
.metadata
|
||||
.clone()
|
||||
.map(Vec::<MerchantDefinedInformation>::foreign_from);
|
||||
|
||||
Ok(Self {
|
||||
processing_information,
|
||||
@ -1284,7 +1292,7 @@ impl TryFrom<&CybersourceRouterData<&types::PaymentsAuthorizeRouterData>>
|
||||
let merchant_defined_information =
|
||||
item.router_data.request.metadata.clone().map(|metadata| {
|
||||
Vec::<MerchantDefinedInformation>::foreign_from(
|
||||
metadata.peek().to_owned(),
|
||||
metadata,
|
||||
)
|
||||
});
|
||||
let ucaf_collection_indicator = match apple_pay_data
|
||||
@ -1411,10 +1419,12 @@ impl
|
||||
payment_instrument,
|
||||
}));
|
||||
let client_reference_information = ClientReferenceInformation::from(item);
|
||||
let merchant_defined_information =
|
||||
item.router_data.request.metadata.clone().map(|metadata| {
|
||||
Vec::<MerchantDefinedInformation>::foreign_from(metadata.peek().to_owned())
|
||||
});
|
||||
let merchant_defined_information = item
|
||||
.router_data
|
||||
.request
|
||||
.metadata
|
||||
.clone()
|
||||
.map(Vec::<MerchantDefinedInformation>::foreign_from);
|
||||
Ok(Self {
|
||||
processing_information,
|
||||
payment_information,
|
||||
@ -1510,10 +1520,12 @@ impl TryFrom<&CybersourceRouterData<&types::PaymentsCaptureRouterData>>
|
||||
fn try_from(
|
||||
item: &CybersourceRouterData<&types::PaymentsCaptureRouterData>,
|
||||
) -> Result<Self, Self::Error> {
|
||||
let merchant_defined_information =
|
||||
item.router_data.request.metadata.clone().map(|metadata| {
|
||||
Vec::<MerchantDefinedInformation>::foreign_from(metadata.peek().to_owned())
|
||||
});
|
||||
let merchant_defined_information = item
|
||||
.router_data
|
||||
.request
|
||||
.metadata
|
||||
.clone()
|
||||
.map(Vec::<MerchantDefinedInformation>::foreign_from);
|
||||
Ok(Self {
|
||||
processing_information: ProcessingInformation {
|
||||
capture_options: Some(CaptureOptions {
|
||||
@ -1602,10 +1614,12 @@ impl TryFrom<&CybersourceRouterData<&types::PaymentsCancelRouterData>> for Cyber
|
||||
fn try_from(
|
||||
value: &CybersourceRouterData<&types::PaymentsCancelRouterData>,
|
||||
) -> Result<Self, Self::Error> {
|
||||
let merchant_defined_information =
|
||||
value.router_data.request.metadata.clone().map(|metadata| {
|
||||
Vec::<MerchantDefinedInformation>::foreign_from(metadata.peek().to_owned())
|
||||
});
|
||||
let merchant_defined_information = value
|
||||
.router_data
|
||||
.request
|
||||
.metadata
|
||||
.clone()
|
||||
.map(Vec::<MerchantDefinedInformation>::foreign_from);
|
||||
Ok(Self {
|
||||
client_reference_information: ClientReferenceInformation {
|
||||
code: Some(value.router_data.connector_request_reference_id.clone()),
|
||||
|
||||
@ -1,12 +1,7 @@
|
||||
use api_models::webhooks;
|
||||
use cards::CardNumber;
|
||||
use common_enums::CountryAlpha2;
|
||||
use common_utils::{
|
||||
errors::CustomResult,
|
||||
ext_traits::XmlExt,
|
||||
pii::{self, Email},
|
||||
types::FloatMajorUnit,
|
||||
};
|
||||
use common_utils::{errors::CustomResult, ext_traits::XmlExt, pii::Email, types::FloatMajorUnit};
|
||||
use error_stack::{report, Report, ResultExt};
|
||||
use masking::{ExposeInterface, PeekInterface, Secret};
|
||||
use serde::{Deserialize, Serialize};
|
||||
@ -431,8 +426,8 @@ pub struct NmiMerchantDefinedField {
|
||||
}
|
||||
|
||||
impl NmiMerchantDefinedField {
|
||||
pub fn new(metadata: &pii::SecretSerdeValue) -> Self {
|
||||
let metadata_as_string = metadata.peek().to_string();
|
||||
pub fn new(metadata: &serde_json::Value) -> Self {
|
||||
let metadata_as_string = metadata.to_string();
|
||||
let hash_map: std::collections::BTreeMap<String, serde_json::Value> =
|
||||
serde_json::from_str(&metadata_as_string).unwrap_or(std::collections::BTreeMap::new());
|
||||
let inner = hash_map
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
use common_utils::{ext_traits::Encode, pii, types::StringMajorUnit};
|
||||
use error_stack::ResultExt;
|
||||
use masking::{ExposeInterface, PeekInterface, Secret};
|
||||
use masking::{ExposeInterface, Secret};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::{
|
||||
@ -107,8 +107,8 @@ fn get_value_as_string(value: &serde_json::Value) -> String {
|
||||
}
|
||||
|
||||
impl NoonOrderNvp {
|
||||
pub fn new(metadata: &pii::SecretSerdeValue) -> Self {
|
||||
let metadata_as_string = metadata.peek().to_string();
|
||||
pub fn new(metadata: &serde_json::Value) -> Self {
|
||||
let metadata_as_string = metadata.to_string();
|
||||
let hash_map: std::collections::BTreeMap<String, serde_json::Value> =
|
||||
serde_json::from_str(&metadata_as_string).unwrap_or(std::collections::BTreeMap::new());
|
||||
let inner = hash_map
|
||||
|
||||
@ -1840,7 +1840,8 @@ impl TryFrom<(&types::PaymentsAuthorizeRouterData, MinorUnit)> for PaymentIntent
|
||||
}
|
||||
});
|
||||
|
||||
let meta_data = get_transaction_metadata(item.request.metadata.clone(), order_id);
|
||||
let meta_data =
|
||||
get_transaction_metadata(item.request.metadata.clone().map(Into::into), order_id);
|
||||
|
||||
// We pass browser_info only when payment_data exists.
|
||||
// Hence, we're pass Null during recurring payments as payment_method_data[type] is not passed
|
||||
@ -3334,7 +3335,7 @@ impl TryFrom<(&types::PaymentsAuthorizeRouterData, MinorUnit)> for ChargesReques
|
||||
let amount = data.1;
|
||||
let order_id = value.connector_request_reference_id.clone();
|
||||
let meta_data = Some(get_transaction_metadata(
|
||||
value.request.metadata.clone(),
|
||||
value.request.metadata.clone().map(Into::into),
|
||||
order_id,
|
||||
));
|
||||
Ok(Self {
|
||||
|
||||
@ -922,16 +922,14 @@ impl PaymentsAuthorizeRequestData for types::PaymentsAuthorizeData {
|
||||
}
|
||||
|
||||
fn get_metadata_as_object(&self) -> Option<pii::SecretSerdeValue> {
|
||||
self.metadata
|
||||
.clone()
|
||||
.and_then(|meta_data| match meta_data.peek() {
|
||||
serde_json::Value::Null
|
||||
| serde_json::Value::Bool(_)
|
||||
| serde_json::Value::Number(_)
|
||||
| serde_json::Value::String(_)
|
||||
| serde_json::Value::Array(_) => None,
|
||||
serde_json::Value::Object(_) => Some(meta_data),
|
||||
})
|
||||
self.metadata.clone().and_then(|meta_data| match meta_data {
|
||||
serde_json::Value::Null
|
||||
| serde_json::Value::Bool(_)
|
||||
| serde_json::Value::Number(_)
|
||||
| serde_json::Value::String(_)
|
||||
| serde_json::Value::Array(_) => None,
|
||||
serde_json::Value::Object(_) => Some(meta_data.into()),
|
||||
})
|
||||
}
|
||||
|
||||
fn get_authentication_data(&self) -> Result<AuthenticationData, Error> {
|
||||
|
||||
@ -320,7 +320,7 @@ where
|
||||
.or_else(||
|
||||
// when the order_details are present within the meta_data, we need to take those to support backward compatibility
|
||||
payment_data.payment_intent.metadata.clone().and_then(|meta| {
|
||||
let order_details = meta.peek().get("order_details").to_owned();
|
||||
let order_details = meta.get("order_details").to_owned();
|
||||
order_details.map(|order| vec![masking::Secret::new(order.to_owned())])
|
||||
}))
|
||||
.map(|order_details_value| {
|
||||
|
||||
@ -1690,7 +1690,7 @@ impl<F: Clone> TryFrom<PaymentAdditionalData<'_, F>> for types::SetupMandateRequ
|
||||
Some(RequestIncrementalAuthorization::True)
|
||||
| Some(RequestIncrementalAuthorization::Default)
|
||||
),
|
||||
metadata: payment_data.payment_intent.metadata.clone(),
|
||||
metadata: payment_data.payment_intent.metadata.clone().map(Into::into),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,6 +15,7 @@ pub struct KafkaPaymentIntent<'a> {
|
||||
pub customer_id: Option<&'a id_type::CustomerId>,
|
||||
pub description: Option<&'a String>,
|
||||
pub return_url: Option<&'a String>,
|
||||
pub metadata: Option<String>,
|
||||
pub connector_id: Option<&'a String>,
|
||||
pub statement_descriptor_name: Option<&'a String>,
|
||||
pub statement_descriptor_suffix: Option<&'a String>,
|
||||
@ -47,6 +48,7 @@ impl<'a> KafkaPaymentIntent<'a> {
|
||||
customer_id: intent.customer_id.as_ref(),
|
||||
description: intent.description.as_ref(),
|
||||
return_url: intent.return_url.as_ref(),
|
||||
metadata: intent.metadata.as_ref().map(|x| x.to_string()),
|
||||
connector_id: intent.connector_id.as_ref(),
|
||||
statement_descriptor_name: intent.statement_descriptor_name.as_ref(),
|
||||
statement_descriptor_suffix: intent.statement_descriptor_suffix.as_ref(),
|
||||
|
||||
@ -16,6 +16,7 @@ pub struct KafkaPaymentIntentEvent<'a> {
|
||||
pub customer_id: Option<&'a id_type::CustomerId>,
|
||||
pub description: Option<&'a String>,
|
||||
pub return_url: Option<&'a String>,
|
||||
pub metadata: Option<String>,
|
||||
pub connector_id: Option<&'a String>,
|
||||
pub statement_descriptor_name: Option<&'a String>,
|
||||
pub statement_descriptor_suffix: Option<&'a String>,
|
||||
@ -48,6 +49,7 @@ impl<'a> KafkaPaymentIntentEvent<'a> {
|
||||
customer_id: intent.customer_id.as_ref(),
|
||||
description: intent.description.as_ref(),
|
||||
return_url: intent.return_url.as_ref(),
|
||||
metadata: intent.metadata.as_ref().map(|x| x.to_string()),
|
||||
connector_id: intent.connector_id.as_ref(),
|
||||
statement_descriptor_name: intent.statement_descriptor_name.as_ref(),
|
||||
statement_descriptor_suffix: intent.statement_descriptor_suffix.as_ref(),
|
||||
|
||||
Reference in New Issue
Block a user