IDTech Universal SDK  1.0.35.036
API reference for C++
EMV Callback

During an EMV transaction, ID TECH devices without a built-in LCD display return LCD Display messages as an EMV Callback.

void EMV_callBack(int device_type, int device_state, unsigned char * data, int dataLen,IDTTransactionData* cardData,EMV_Callback* emvCallback, int transactionResultCode)

There is an DeviceState enum in the SDK's EMV Callback that is returned for device_state. When this DeviceState is received as EMVCallback, it returns an EMV_Callback() class pointer. EMV_Callback.callbackType specifies the type of callback: EMV_CALLBACK_TYPE_LCD, EMV_CALLBACK_TYPE_PINPAD, or EMV_CALLBACK_MSR. The device only uses the EMV_CALLBACK_TYPE_LCD.

The callback type for LCD display messages is EMV_CALLBACK_TYPE_LCD. To determine the type of LCD message, get EMV_LCD_DISPLAY_MODE from IDTechSDK::EMV_Callback::lcd_displayMode:
1 - LCD_DISPLAY_MODE_MENU: Menu selection, response required with selected menu index #, or 0 to cancel
2 - LCD_DISPLAY_MODE_PROMPT: Message Prompt, response required 'E' for Enter/Accept, or 'C' for cancel
3 - LCD_DISPLAY_MODE_MESSAGE: Display Message, no response required
8 – LCD_DISPLAY_MODE_LANGUAGE_SELECT: Language selection, response required with selected language index #
16 - LCD_DISPLAY_MODE_CLEAR_SCREEN: Request to clear LCD screen of information
The LCD_DISPLAY_MODE_MESSAGE and LCD_DISPLAY_MODE_CLEAR_SCREEN do not pause the EMV transaction. These two modes are for displaying a message (no response required) or for clearing the screen.

If the mode is LCD_DISPLAY_MODE_MENU, LCD_DISPLAY_MODE_PROMPT, or LCD_DISPLAY_MODE_LANGUAGE_SELECT, the provided message must be displayed and the EMV transaction pauses until a response is sent to emv_callbackResponseLCD().

The message to display is byte[] lcd_messages. This contains either a message string or a message ID according to the LCD Foreign Language Mapping Table (Foreign Language Mapping Table).