Issue:
[FEATURE] integrate 3DS for Worldpay connector

### Feature Description

WorldPay offers 3DS capabilities for a card txn. Same needs to be integrated in HyperSwitch.

Flow - https://developer.worldpay.com/products/access/3ds/web

### Possible Implementation

Implementing 3DS for WorldPay requires one additional step of running DDC flows. Flow can be looked at in WorldPay's dev docs

1. Redirect to Worldpay's DDC
2. Redirect to Wordlpay's 3DS redirection form
3. Capture details in HyperSwitch's `/redirect/complete` flow
4. Perform a PSync (optional)

Reference
https://developer.worldpay.com/products/access/3ds/web

### 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?

None

Resolution:
<think>
PR Context:
- Title: feat(connector): add 3DS flow for Worldpay
- Merged: 2024-10-21T14:14:20Z
- Files changed: 8 files
- Commits: 30 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
Described in #6177 

### Additional Changes

- [ ] This PR modifies the API contract
- [ ] This PR modifies the database schema
- [ ] This PR modifies application configuration/environment variables

<!--
Provide links to the files with corresponding changes.

Following are
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** feat(connector): add 3DS flow for Worldpay (#6374)
Co-authored-by: hyperswitch-bot[bot] <148525504+h
Files to modify:


**crates/diesel_models/src/query/payment_attempt.rs**
  Modify existing code

**crates/hyperswitch_domain_models/src/router_response_types.rs**
  Modify existing code

**crates/router/src/connector/worldpay.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_flow_type
    - impl: impl api::PaymentsCompleteAuthorize for Worldpay
    - impl: impl ConnectorIntegration<
        api::CompleteAuthorize,
        types::CompleteAuthorizeData,
        types::PaymentsResponseData,
    > for Worldpay
    - impl: impl services::ConnectorRedirectResponse for Worldpay

**crates/router/src/connector/worldpay/requests.rs**
  Add:
    - struct: pub::ThreeDSRequest
    - struct: pub::ThreeDSRequestDeviceData
    - struct: pub::ThreeDSRequestChallenge
    - struct: pub::WorldpayCompleteAuthorizationRequest
    - enum: pub::ThreeDSRequestChannel

**crates/router/src/connector/worldpay/response.rs**
  Remove:
    - function: pub::new
    - impl: impl PaymentsResPaymentInstrument
  Add:
    - function: private::fmt
    - struct: pub::ThreeDsChallengedResponse
    - struct: pub::AuthenticationResponse
    - struct: pub::ThreeDsChallenge
    - struct: pub::CompleteThreeDsActionLink

**crates/router/src/connector/worldpay/transformers.rs**
  Modify existing code

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

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