Release V5.2.4.1
Fixes & Enhancements
The following fixes have been implemented in this release:
Fixed intermediate D38T response during ongoing transactions
Context: In Cloud Mode, when contactless card transactions encountered temporary reading issues (like early card removal), the system returned an intermediate D38T response while the transaction was still active on the terminal.
Solution: Modified the CLESS_RETRY error handling logic in the SunmiEmvCallback class to prevent intermediate responses from being sent when transactions are still in progress.
Impact: Customers now receive only the final transaction status after complete processing, preventing confusion and improving reliability of contactless payments when cards are tapped quickly.
- Implementation Details
- Testing & Validation
- Database Changes
System Changes Overview
- Database Changes: None
- Configuration Changes: None
- Code Changes: Modified contactless card error handling logic in the SunmiEmvCallback class
- Filesystem Changes: None
- Data Migration: None
Update Actions Analysis
No update actions required as changes can be deployed through standard mechanisms
- Changes were implemented entirely through code modification
- No database structure modifications were required
- No configuration file changes were needed
- Standard deployment processes will apply the fixes
Implementation Actions
- Modified error handling logic for CLESS_RETRY scenarios
- Added support for CLESS_HOLD_AND_RETRY case
- Restructured the error handling flow using a switch statement
- Prevented D38T responses from being sent during ongoing transactions
Configuration and Access Steps
- Enable Cloud Mode on the terminal device
- Configure a terminal for payment processing
- Use Postman or similar tool to send API requests
- Navigation: Terminal App → Cloud Mode → Sale/Sale-Auth Transaction
Test Scenarios
-
Early card removal during contactless transaction
- Steps: Send a sale request in Cloud Mode and quickly remove the card before proper reading
- Expected result: No D38T response is sent in API while terminal shows "Please hold card until beep"
-
Successful retry after early card removal
- Steps: After seeing "Please hold card until beep" message, hold the card properly until beep
- Expected result: Transaction completes successfully with final status returned to API
-
Final transaction outcome reporting
- Steps: Complete any transaction (successful or declined) in Cloud Mode
- Expected result: Only the final transaction status is returned to the API
-
Multiple retry scenarios
- Steps: Remove card early multiple times during the same transaction
- Expected result: Terminal continues to prompt for proper card presentation without sending intermediate D38T responses
Common Issues
- Terminal app version must be V5.2.4.1 or higher
- Ensure proper network connectivity for Cloud Mode testing
- Some older terminal models may require firmware updates
- Transaction timeouts may occur if card is not presented within time limit
Potential Impact Areas
- UI Components: Only terminal device screens are affected, showing proper retry messages
- Reports & Analytics: Transaction reporting will show fewer declined transactions due to improved retry handling
- APIs & Integrations: API responses will only contain final transaction statuses, improving reliability for integrators
- Database Queries: No impact on database queries or structures
- Business Logic: Card processing flow is improved to handle retry scenarios properly
- Performance: Reduced unnecessary API responses and improved transaction success rates
Schema Updates
- No database schema changes were implemented in this release
- No data structure modifications were required
- No new tables or columns were added
Rollback Possibility Assessment
Database rollback is not applicable as no database changes were made
- No database modifications were performed
- All changes were implemented in application code only
- Standard deployment processes apply
- No data migration or transformation was needed