feat(core): Add Support for Payments Dynamic Tax Calculation Based on Shipping Address (#5619)

Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
Swangi Kumari
2024-09-06 19:08:15 +05:30
committed by GitHub
parent d3a1703bf5
commit a03ad53e43
75 changed files with 2932 additions and 1239 deletions

View File

@ -2,18 +2,19 @@
use hyperswitch_domain_models::{
router_flow_types::payments::{
Approve, Authorize, AuthorizeSessionToken, Capture, CompleteAuthorize,
Approve, Authorize, AuthorizeSessionToken, CalculateTax, Capture, CompleteAuthorize,
CreateConnectorCustomer, IncrementalAuthorization, PSync, PaymentMethodToken,
PostProcessing, PreProcessing, Reject, Session, SetupMandate, Void,
PostProcessing, PreProcessing, Reject, SdkSessionUpdate, Session, SetupMandate, Void,
},
router_request_types::{
AuthorizeSessionTokenData, CompleteAuthorizeData, ConnectorCustomerData,
PaymentMethodTokenizationData, PaymentsApproveData, PaymentsAuthorizeData,
PaymentsCancelData, PaymentsCaptureData, PaymentsIncrementalAuthorizationData,
PaymentsPostProcessingData, PaymentsPreProcessingData, PaymentsRejectData,
PaymentsSessionData, PaymentsSyncData, SetupMandateRequestData,
PaymentsSessionData, PaymentsSyncData, PaymentsTaxCalculationData,
SdkPaymentsSessionUpdateData, SetupMandateRequestData,
},
router_response_types::PaymentsResponseData,
router_response_types::{PaymentsResponseData, TaxCalculationResponseData},
};
use crate::api;
@ -37,6 +38,7 @@ pub trait Payment:
+ PaymentsPostProcessing
+ ConnectorCustomer
+ PaymentIncrementalAuthorization
+ PaymentSessionUpdate
{
}
@ -110,6 +112,18 @@ pub trait PaymentIncrementalAuthorization:
{
}
/// trait PaymentTaxCalculation
pub trait PaymentTaxCalculation:
api::ConnectorIntegration<CalculateTax, PaymentsTaxCalculationData, TaxCalculationResponseData>
{
}
/// trait SessionUpdate
pub trait PaymentSessionUpdate:
api::ConnectorIntegration<SdkSessionUpdate, SdkPaymentsSessionUpdateData, PaymentsResponseData>
{
}
/// trait PaymentsCompleteAuthorize
pub trait PaymentsCompleteAuthorize:
api::ConnectorIntegration<CompleteAuthorize, CompleteAuthorizeData, PaymentsResponseData>

View File

@ -3,18 +3,19 @@
use hyperswitch_domain_models::{
router_data_v2::PaymentFlowData,
router_flow_types::payments::{
Approve, Authorize, AuthorizeSessionToken, Capture, CompleteAuthorize,
Approve, Authorize, AuthorizeSessionToken, CalculateTax, Capture, CompleteAuthorize,
CreateConnectorCustomer, IncrementalAuthorization, PSync, PaymentMethodToken,
PostProcessing, PreProcessing, Reject, Session, SetupMandate, Void,
PostProcessing, PreProcessing, Reject, SdkSessionUpdate, Session, SetupMandate, Void,
},
router_request_types::{
AuthorizeSessionTokenData, CompleteAuthorizeData, ConnectorCustomerData,
PaymentMethodTokenizationData, PaymentsApproveData, PaymentsAuthorizeData,
PaymentsCancelData, PaymentsCaptureData, PaymentsIncrementalAuthorizationData,
PaymentsPostProcessingData, PaymentsPreProcessingData, PaymentsRejectData,
PaymentsSessionData, PaymentsSyncData, SetupMandateRequestData,
PaymentsSessionData, PaymentsSyncData, PaymentsTaxCalculationData,
SdkPaymentsSessionUpdateData, SetupMandateRequestData,
},
router_response_types::PaymentsResponseData,
router_response_types::{PaymentsResponseData, TaxCalculationResponseData},
};
use crate::api::{ConnectorCommon, ConnectorIntegrationV2, ConnectorValidation};
@ -89,6 +90,28 @@ pub trait PaymentIncrementalAuthorizationV2:
{
}
///trait PaymentTaxCalculationV2
pub trait PaymentTaxCalculationV2:
ConnectorIntegrationV2<
CalculateTax,
PaymentFlowData,
PaymentsTaxCalculationData,
TaxCalculationResponseData,
>
{
}
///trait PaymentSessionUpdateV2
pub trait PaymentSessionUpdateV2:
ConnectorIntegrationV2<
SdkSessionUpdate,
PaymentFlowData,
SdkPaymentsSessionUpdateData,
PaymentsResponseData,
>
{
}
/// trait PaymentsCompleteAuthorizeV2
pub trait PaymentsCompleteAuthorizeV2:
ConnectorIntegrationV2<
@ -163,5 +186,7 @@ pub trait PaymentV2:
+ PaymentsPostProcessingV2
+ ConnectorCustomerV2
+ PaymentIncrementalAuthorizationV2
+ PaymentTaxCalculationV2
+ PaymentSessionUpdateV2
{
}