Issue:
[FEATURE]: [Cybersource] Add 3DS flow for cards

### Feature Description

 Add 3DS flow for cards

### Possible Implementation

 Add 3DS flow for cards

### Have you spent some time checking if this feature request has been raised before?

- [X] I checked and didn't find a similar issue

### Have you read the Contributing Guidelines?

- [X] I have read the [Contributing Guidelines](https://github.com/juspay/hyperswitch/blob/main/docs/CONTRIBUTING.md)

### Are you willing to submit a PR?

Yes, I am willing to submit a PR!

Resolution:
<think>
PR Context:
- Title: feat(connector): [cybersource] Implement 3DS flow for cards
- Merged: 2024-01-11T15:20:46Z
- Files changed: 13 files
- Commits: 29 commits

Implementation approach:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [X] New feature
- [ ] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
<!-- Describe your changes in detail -->
Implement 3DS flow for cards

```
Legend: 
UB: User Browser
M: Merchant
HS: Hyperswitch
CS: Cybersource
```

![Cybersource_3DS](https://github.com/juspay/hyperswitch/assets/55536657/eea4b266-970b-4f73-84c2-d19ca05a6ea2)


### Addi
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** feat(connector): [cybersource] Implement 3DS flow for cards (#3290)
Co-authored-by: DEEPANSHU BANSAL
Files to modify:


**crates/router/src/connector/cybersource.rs**
  Add:
    - function: private::get_headers
    - function: private::get_content_type
    - function: private::get_url
    - function: private::get_request_body
    - function: private::build_request
    - function: private::handle_response
    - function: private::get_error_response
    - function: private::get_error_response
    - function: private::get_headers
    - function: private::get_content_type
    - function: private::get_url
    - function: private::get_request_body
    - function: private::build_request
    - impl: impl api::PaymentsPreProcessing for Cybersource
    - impl: impl api::PaymentsCompleteAuthorize for Cybersource
    - impl: impl ConnectorIntegration<
        api::PreProcessing,
        types::PaymentsPreProcessingData,
        types::PaymentsResponseData,
    > for Cybersource

**crates/router/src/connector/cybersource/transformers.rs**
  Remove:
    - enum: pub::CybersourceCommerceIndicator
  Add:
    - function: private::from
    - function: private::from
    - struct: pub::CybersourceConsumerAuthInformation
    - impl: impl From<&CybersourceRouterData<&types::PaymentsCompleteAuthorizeRouterData>> for ClientReferenceInformation
    - impl: impl From<(
        &CybersourceRouterData<&types::PaymentsCompleteAuthorizeRouterData>,
        Option<PaymentSolution>,
        &CybersourceConsumerAuthValidateResponse,
    )> for ProcessingInformation

**crates/router/src/connector/utils.rs**
  Add:
    - function: private::get_complete_authorize_url
    - function: private::get_complete_authorize_url

**crates/router/src/core/payments.rs**
  Add:
    - function: pub::is_operation_complete_authorize

**crates/router/src/core/payments/flows.rs**
  Modify existing code

**crates/router/src/core/payments/flows/authorize_flow.rs**
  Modify existing code

**crates/router/src/core/payments/flows/complete_authorize_flow.rs**
  Modify existing code

**crates/router/src/core/payments/transformers.rs**
  Modify existing code

**crates/router/src/services/api.rs**
  Modify existing code

**crates/router/src/types.rs**
  Modify existing code