mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-11-02 12:06:56 +08:00
refactor(connector): [Zen] refactor connector_meta_data for zen connector applepay session data (#1390)
This commit is contained in:
@ -140,6 +140,11 @@ pub struct ZenItemObject {
|
|||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
pub struct SessionObject {
|
pub struct SessionObject {
|
||||||
|
pub apple_pay: Option<ApplePaySessionData>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
|
pub struct ApplePaySessionData {
|
||||||
pub terminal_uuid: Option<String>,
|
pub terminal_uuid: Option<String>,
|
||||||
pub pay_wall_secret: Option<String>,
|
pub pay_wall_secret: Option<String>,
|
||||||
}
|
}
|
||||||
@ -227,7 +232,10 @@ impl
|
|||||||
let session: SessionObject = connector_meta
|
let session: SessionObject = connector_meta
|
||||||
.parse_value("SessionObject")
|
.parse_value("SessionObject")
|
||||||
.change_context(errors::ConnectorError::RequestEncodingFailed)?;
|
.change_context(errors::ConnectorError::RequestEncodingFailed)?;
|
||||||
let terminal_uuid = session
|
let applepay_session_data = session
|
||||||
|
.apple_pay
|
||||||
|
.ok_or(errors::ConnectorError::RequestEncodingFailed)?;
|
||||||
|
let terminal_uuid = applepay_session_data
|
||||||
.terminal_uuid
|
.terminal_uuid
|
||||||
.clone()
|
.clone()
|
||||||
.ok_or(errors::ConnectorError::RequestEncodingFailed)?;
|
.ok_or(errors::ConnectorError::RequestEncodingFailed)?;
|
||||||
@ -242,14 +250,17 @@ impl
|
|||||||
signature: None,
|
signature: None,
|
||||||
url_redirect: item.request.get_return_url()?,
|
url_redirect: item.request.get_return_url()?,
|
||||||
};
|
};
|
||||||
checkout_request.signature = Some(get_checkout_signature(&checkout_request, &session)?);
|
checkout_request.signature = Some(get_checkout_signature(
|
||||||
|
&checkout_request,
|
||||||
|
&applepay_session_data,
|
||||||
|
)?);
|
||||||
Ok(Self::CheckoutRequest(Box::new(checkout_request)))
|
Ok(Self::CheckoutRequest(Box::new(checkout_request)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_checkout_signature(
|
fn get_checkout_signature(
|
||||||
checkout_request: &CheckoutRequest,
|
checkout_request: &CheckoutRequest,
|
||||||
session: &SessionObject,
|
session: &ApplePaySessionData,
|
||||||
) -> Result<Secret<String>, error_stack::Report<errors::ConnectorError>> {
|
) -> Result<Secret<String>, error_stack::Report<errors::ConnectorError>> {
|
||||||
let pay_wall_secret = session
|
let pay_wall_secret = session
|
||||||
.pay_wall_secret
|
.pay_wall_secret
|
||||||
|
|||||||
Reference in New Issue
Block a user