Skip to content

5.3.0

Choose a tag to compare

@github-actions github-actions released this 06 Aug 10:36
5d5968f

Release 5.3.0 (#358)

This pull request introduces several improvements and clarifications to the 3DS challenge indicator and related enums used in session and payment APIs. The main focus is on separating the values specific to session requests from those used in payment flows, improving documentation, and ensuring backwards compatibility. Additionally, related enums are updated for clarity and consistency, and comprehensive tests are added to verify correct serialization and deprecation handling.

Key changes:

3DS Challenge Indicator Improvements

  • Introduced a new SessionChallengeIndicatorType class with clear documentation and nine explicit values, including exemption values, for use only with session requests (POST /sessions). This separates session-specific values from those used in payments.
  • Updated ChallengeIndicatorType in Checkout\Common to clarify that five exemption values are deprecated and only accepted by sessions, not by payments or hosted payments. Documentation is improved and deprecation tags are added for these values.
  • Updated SessionRequest to use SessionChallengeIndicatorType for the challenge_indicator property, with improved docblocks and default value assignment. [1] [2] [3]

Related Enum and Property Updates

  • Updated Category, SessionScheme, and TransactionType enums with improved documentation, consistent naming, and added or corrected values (e.g., non_payment, quasi_card_transaction, new schemes like discover and upi). [1] [2] [3]

Test Improvements

  • Added a comprehensive test class, ChallengeIndicatorSerializationTest, to verify that all challenge indicator values are exposed, correctly serialized, and properly marked as deprecated where appropriate.
  • Updated integration tests to use the new SessionChallengeIndicatorType for session requests. [1] [2] [3] [4] [5]

These changes clarify the intended usage of challenge indicator values, improve maintainability, and ensure that the SDK aligns with API expectations and best practices.