Skip to content

Conversation

@capaixao
Copy link
Collaborator

@capaixao capaixao commented Jul 25, 2025

Pull Request

3DS agnostic implementation

Ticket or Issue link

2962

Description

Implement agnostic 3DS authentication module

  • Add MPThreeDS main class with initialize() and requestChallenge() methods
  • Create complete dependency injection structure with MPThreeDSModulesProvider
  • Implement domain models (MPThreeDSAuthenticationResponse, ThreeDSBody, ThreeDSAuthRequestParameters)
  • Add MPThreeDSChallengeDelegate interface for authentication callbacks
  • Create agnostic ThreeDSSDKAdapter interface with default mock implementation
  • Implement repository pattern with ThreeDSRepository and remote data source
  • Add AuthenticateUseCase and RequestChallengeUseCase for business logic
  • Create Retrofit service for MercadoPago backend authentication API
  • Add MercadoPagoSDK.threeDS extension property for easy access
  • Implement error handling with MPThreeDSChallengeError and custom exceptions
  • Support multiple directory servers (VISA, Mastercard, AMEX)
  • Follow complete sequence diagram flow for 3DS authentication process

Checklist

  • I have tested my changes creating a local version (More info in README file).
  • I have added tests that prove my solution is effective and works
  • New and existing unit tests pass locally with my changes.
  • Verify that you are merged with the latest in develop.
  • I have run ./gradlew check and fixed any possible issues of my code.
  • I have tested my changes with configuration changes such as rotation, no conection, framework error handling
  • I have tested the accessibility of the changes and added them to the screenshots.
  • I have added a tag to the pull request that contains the product this pull request is related to.

Screenshots or videos (if applies)

capaixao added 9 commits July 23, 2025 16:55
- Add MPThreeDS main class with initialize() and requestChallenge() methods
- Create complete dependency injection structure with MPThreeDSModulesProvider
- Implement domain models (MPThreeDSAuthenticationResponse, ThreeDSBody, ThreeDSAuthRequestParameters)
- Add MPThreeDSChallengeDelegate interface for authentication callbacks
- Create agnostic ThreeDSSDKAdapter interface with default mock implementation
- Implement repository pattern with ThreeDSRepository and remote data source
- Add AuthenticateUseCase and RequestChallengeUseCase for business logic
- Create Retrofit service for MercadoPago backend authentication API
- Add MercadoPagoSDK.threeDS extension property for easy access
- Implement error handling with MPThreeDSChallengeError and custom exceptions
- Support multiple directory servers (VISA, Mastercard, AMEX)
- Follow complete sequence diagram flow for 3DS authentication process
@capaixao capaixao self-assigned this Jul 25, 2025
@capaixao capaixao changed the title [2962](Feature): Checkout implementation [2962](Feature): Checkout agnostic implementation Jul 25, 2025
@capaixao capaixao changed the title [2962](Feature): Checkout agnostic implementation WIP: [2962](Feature): Checkout agnostic implementation Jul 25, 2025
@capaixao capaixao added the feature New feature or request label Jul 25, 2025
@capaixao capaixao changed the title WIP: [2962](Feature): Checkout agnostic implementation [2962](Feature): Checkout agnostic implementation Jul 28, 2025
@capaixao capaixao changed the title [2962](Feature): Checkout agnostic implementation WIP: [2962](Feature): Checkout agnostic implementation Jul 29, 2025
@capaixao capaixao changed the title WIP: [2962](Feature): Checkout agnostic implementation WIP: [2962](Feature): 3DS agnostic implementation Jul 29, 2025
# Conflicts:
#	components/src/main/java/com/mercadopago/sdk/android/components/MPText.kt
#	threeds/build.gradle.kts
Copy link
Collaborator

@samantaalbanez samantaalbanez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

some comments

@capaixao capaixao changed the title WIP: [2962](Feature): 3DS agnostic implementation [2962](Feature): 3DS agnostic implementation Nov 5, 2025
francineemilia
francineemilia previously approved these changes Nov 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants