enum EMV_RESULT_CODE
{
EMV_RESULT_CODE_APPROVED_OFFLINE = 0,
EMV_RESULT_CODE_DECLINED_OFFLINE = 1,
EMV_RESULT_CODE_APPROVED = 2,
EMV_RESULT_CODE_DECLINED = 3,
EMV_RESULT_CODE_GO_ONLINE = 4,
EMV_RESULT_CODE_CALL_YOUR_BANK = 5,
EMV_RESULT_CODE_NOT_ACCEPTED = 6,
EMV_RESULT_CODE_FALLBACK_TO_MSR = 7,
EMV_RESULT_CODE_TIMEOUT = 8,
EMV_RESULT_CODE_GO_ONLINE_CTLS = 9,
EMV_RESULT_CODE_AUTHENTICATE_TRANSACTION = 0x0010,
EMV_RESULT_CODE_TRANSACTION_CANCELED = 0x0012,
EMV_RESULT_CODE_SWIPE_NON_ICC = 0x11,
EMV_RESULT_CODE_CTLS_TWO_CARDS = 0x7A,
EMV_RESULT_CODE_CTLS_TERMINATE = 0x7E,
EMV_RESULT_CODE_CTLS_TERMINATE_TRY_ANOTHER = 0x7D,
EMV_RESULT_CODE_UNABLE_TO_REACH_HOST = 0xFF,
EMV_RESULT_CODE_FILE_ARG_INVALID = 0x1001,
EMV_RESULT_CODE_FILE_OPEN_FAILED = 0x1002,
EMV_RESULT_CODE_FILE_OPERATION_FAILED = 0x1003,
EMV_RESULT_CODE_MEMORY_NOT_ENOUGH = 0x2001,
EMV_RESULT_CODE_SMARTCARD_OK = 0x3001,
EMV_RESULT_CODE_SMARTCARD_FAIL = 0x3002,
EMV_RESULT_CODE_SMARTCARD_INIT_FAILED = 0x3003,
EMV_RESULT_CODE_FALLBACK_SITUATION = 0x3004,
EMV_RESULT_CODE_SMARTCARD_ABSENT = 0x3005,
EMV_RESULT_CODE_SMARTCARD_TIMEOUT = 0x3006,
EMV_RESULT_CODE_MSR_CARD_ERROR = 0x3007,
EMV_RESULT_CODE_PARSING_TAGS_FAILED = 0x5001,
EMV_RESULT_CODE_CARD_DATA_ELEMENT_DUPLICATE = 0x5002,
EMV_RESULT_CODE_DATA_FORMAT_INCORRECT = 0x5003,
EMV_RESULT_CODE_APP_NO_TERM = 0x5004,
EMV_RESULT_CODE_APP_NO_MATCHING = 0x5005,
EMV_RESULT_CODE_MANDATORY_OBJECT_MISSING = 0x5006,
EMV_RESULT_CODE_APP_SELECTION_RETRY = 0x5007,
EMV_RESULT_CODE_AMOUNT_ERROR_GET = 0x5008,
EMV_RESULT_CODE_CARD_REJECTED = 0x5009,
EMV_RESULT_CODE_AIP_NOT_RECEIVED = 0x5010,
EMV_RESULT_CODE_AFL_NOT_RECEIVED = 0x5011,
EMV_RESULT_CODE_AFL_LEN_OUT_OF_RANGE = 0x5012,
EMV_RESULT_CODE_SFI_OUT_OF_RANGE = 0x5013,
EMV_RESULT_CODE_AFL_INCORRECT = 0x5014,
EMV_RESULT_CODE_EXP_DATE_INCORRECT = 0x5015,
EMV_RESULT_CODE_EFF_DATE_INCORRECT = 0x5016,
EMV_RESULT_CODE_ISS_COD_TBL_OUT_OF_RANGE = 0x5017,
EMV_RESULT_CODE_CRYPTOGRAM_TYPE_INCORRECT = 0x5018,
EMV_RESULT_CODE_PSE_BY_CARD_NOT_SUPPORTED = 0x5019,
EMV_RESULT_CODE_USER_LANGUAGE_SELECTED = 0x5020,
EMV_RESULT_CODE_SERVICE_NOT_ALLOWED = 0x5021,
EMV_RESULT_CODE_NO_TAG_FOUND = 0x5022,
EMV_RESULT_CODE_CARD_BLOCKED = 0x5023,
EMV_RESULT_CODE_LEN_INCORRECT = 0x5024,
EMV_RESULT_CODE_CARD_COM_ERROR = 0x5025,
EMV_RESULT_CODE_TSC_NOT_INCREASED = 0x5026,
EMV_RESULT_CODE_HASH_INCORRECT = 0x5027,
EMV_RESULT_CODE_ARC_NOT_PRESENCED = 0x5028,
EMV_RESULT_CODE_ARC_INVALID = 0x5029,
EMV_RESULT_CODE_COMM_NO_ONLINE = 0x5030,
EMV_RESULT_CODE_TRAN_TYPE_INCORRECT = 0x5031,
EMV_RESULT_CODE_APP_NO_SUPPORT = 0x5032,
EMV_RESULT_CODE_APP_NOT_SELECT = 0x5033,
EMV_RESULT_CODE_LANG_NOT_SELECT = 0x5034,
EMV_RESULT_CODE_TERM_DATA_NOT_PRESENCED = 0x5035,
EMV_RESULT_CODE_CVM_TYPE_UNKNOWN = 0x6001,
EMV_RESULT_CODE_CVM_AIP_NOT_SUPPORTED = 0x6002,
EMV_RESULT_CODE_CVM_TAG_8E_MISSING = 0x6003,
EMV_RESULT_CODE_CVM_TAG_8E_FORMAT_ERROR = 0x6004,
EMV_RESULT_CODE_CVM_CODE_IS_NOT_SUPPORTED = 0x6005,
EMV_RESULT_CODE_CVM_COND_CODE_IS_NOT_SUPPORTED = 0x6006,
EMV_RESULT_CODE_CVM_NO_MORE = 0x6007,
EMV_RESULT_CODE_PIN_BYPASSED_BEFORE = 0x6008,
EMV_RESULT_CODE_UNKONWN = 0xffff,
};
enum RETURN_CODE
{
RETURN_CODE_DO_SUCCESS = 0,
RETURN_CODE_ERR_DISCONNECT,
RETURN_CODE_ERR_CMD_RESPONSE,
RETURN_CODE_ERR_TIMEDOUT,
RETURN_CODE_ERR_INVALID_PARAMETER,
RETURN_CODE_SDK_BUSY_MSR,
RETURN_CODE_SDK_BUSY_PINPAD,
RETURN_CODE_SDK_BUSY_CTLS,
RETURN_CODE_SDK_BUSY_EMV,
RETURN_CODE_ERR_OTHER,
RETURN_CODE_FAILED,
RETURN_CODE_NOT_ATTACHED,
RETURN_CODE_MONO_AUDIO,
RETURN_CODE_CONNECTED,
RETURN_CODE_LOW_VOLUME,
RETURN_CODE_CANCELED,
RETURN_CODE_INVALID_STR,
RETURN_CODE_NO_FILE,
RETURN_CODE_INVALID_FILE,
RETURN_CODE_HOST_UNREACHABLE,
RETURN_CODE_RKI_FAILURE,
RETURN_CODE_MISSING_DLL,
RETURN_CODE_ERR_BUF_NOT_ENOUGH,
RETURN_CODE_P1_INCORRECT_FRAME_TAG = 0X0C01,
RETURN_CODE_P1_INCORRECT_FRAME_TYPE = 0X0C02,
RETURN_CODE_P1_UNKNOWN_FRAME_TYPE = 0X0C03,
RETURN_CODE_P1_UNKNOWN_COMMAND = 0X0C04,
RETURN_CODE_P1_UNKNOWN_SUB_COMMAND = 0X0C05,
RETURN_CODE_P1_CRC_ERROR = 0X0C06,
RETURN_CODE_P1_FAILED = 0X0C07,
RETURN_CODE_P1_TIMEOUT = 0X0C08,
RETURN_CODE_P1_INCORRECT_PARAMETER = 0X0C0A,
RETURN_CODE_P1_COMMAND_NOT_SUPPORTED = 0X0C0B,
RETURN_CODE_P1_SUB_COMMAND_NOT_SUPPORTED = 0X0C0C,
RETURN_CODE_P1_STATUS_ABORT_COMMAND = 0X0C0D,
RETURN_CODE_P1_COMMAND_NOT_ALLOWED = 0X0C0F,
RETURN_CODE_P2_ = 0X0D01,
RETURN_CODE_P2_UNKNOWN_COMMAND = 0X0D02,
RETURN_CODE_P2_UNKNOWN_SUB_COMMAND = 0X0D03,
RETURN_CODE_P2_CRC_ERROR = 0X0D04,
RETURN_CODE_P2_INCORRECT_PARAMETER = 0X0D05,
RETURN_CODE_P2_PARAMETER_NOT_SUPPORTED = 0X0D06,
RETURN_CODE_P2_MAL_FORMATTED_DATA = 0X0D07,
RETURN_CODE_P2_TIMEOUT = 0X0D08,
RETURN_CODE_P2_FAILED = 0X0D0A,
RETURN_CODE_P2_COMMAND_NOT_ALLOWED = 0X0D0B,
RETURN_CODE_P2_SUB_COMMAND_NOT_ALLOWED = 0X0D0C,
RETURN_CODE_P2_BUFFER_OVERFLOW = 0X0D0D,
RETURN_CODE_P2_USER_INTERFACE_EVENT = 0X0D0E,
RETURN_CODE_P2_COMM_TYPE_NOT_SUPPORTED = 0X0D11,
RETURN_CODE_P2_SECURE_INTERFACE_NOT_FUNCTIONAL = 0X0D12,
RETURN_CODE_P2_DATA_FIELD_NOT_MOD_8 = 0X0D13,
RETURN_CODE_P2_PADDING_UNEXPECTED = 0X0D14,
RETURN_CODE_P2_KEY_TYPE_INVALID = 0X0D15,
RETURN_CODE_P2_COULD_NOT_RETRIEVE_KEY = 0X0D16,
RETURN_CODE_P2_HASH_CODE_ERROR = 0X0D17,
RETURN_CODE_P2_COUND_NOT_STORE_KEY = 0X0D18,
RETURN_CODE_P2_FRAME_TOO_LARGE = 0X0D19,
RETURN_CODE_P2_RESEND_INITSECURECOMM_COMMAND = 0X0D1A,
RETURN_CODE_P2_EEPROM_NOT_INITIALIZED = 0X0D1B,
RETURN_CODE_P2_APDU_ENCODING_ERROR = 0X0D1C,
RETURN_CODE_P2_SAM_COMM_ERROR = 0X0D20,
RETURN_CODE_P2_SEQUENCE_COUNTER_ERROR = 0X0D21,
RETURN_CODE_P2_IMPROPER_BITMAP = 0X0D22,
RETURN_CODE_P2_REQUEST_ONLINE_AUTHORIZATION = 0X0D23,
RETURN_CODE_P2_RAW_DATA_READ_SUCCESSFUL = 0X0D24,
RETURN_CODE_P2_MESSAGE_INDEX_NOT_AVAILABLE = 0X0D25,
RETURN_CODE_P2_VERSION_INFORMATION_MISMATCH = 0X0D26,
RETURN_CODE_P2_INCORRECT_MESSAGE_INDEX = 0X0D27,
RETURN_CODE_P2_NEXT_MESSAGE_NOT_RECEIVED = 0X0D28,
RETURN_CODE_P2_ILM_LANGUAGE_NOT_AVAILABLE = 0X0D29,
RETURN_CODE_P2_OTHER_LANGUAGE_NOT_SUPPORTED = 0X0D2A,
RETURN_CODE_UNKNOWN_ERROR_FROM_SAM = 0X0D41,
RETURN_CODE_INVALID_DATA_DETECTED_BY_SAM = 0X0D42,
RETURN_CODE_INCOMPLETE_DATA_DETECTED_BY_SAM = 0X0D43,
RETURN_CODE_RESERVED = 0X0D44,
RETURN_CODE_INVALID_KEY_HASH_ALGORITHM = 0X0D45,
RETURN_CODE_INVALID_KEY_ENCRYPTION_ALRORITHM = 0X0D46,
RETURN_CODE_INVALID_MODULUS_LENGTH = 0X0D47,
RETURN_CODE_INVALID_EXPONENT = 0X0D48,
RETURN_CODE_KEY_ALREADY_EXISTS = 0X0D49,
RETURN_CODE_NO_SPACE_FOR_NEW_RID = 0X0D4A,
RETURN_CODE_KEY_NOT_FOUND = 0X0D4B,
RETURN_CODE_CRYPTO_NOT_RESPONDING = 0X0D4C,
RETURN_CODE_CRYPTO_COMMUNICATION_ERROR = 0X0D4D,
RETURN_CODE_P2_KEY_MANAGER_ERROR_4E = 0X0D4E,
RETURN_CODE_ALL_KEY_SLOTS_FULL = 0X0D4F,
RETURN_CODE_P2_AUTO_SWITCH_OK = 0X0D50,
RETURN_CODE_P2_AUTO_SWITCH_FAILED = 0X0D51,
RETURN_CODE_P2_DATA_DOES_NOT_EXIST = 0X0D60,
RETURN_CODE_P2_DATA_FULL = 0X0D61,
RETURN_CODE_P2_WRITE_FLASH_ERROR = 0X0D62,
RETURN_CODE_P2_OK_AND_HAVE_NEXT_COMMAND = 0X0D63,
RETURN_CODE_P2_ACCOUNT_DUKPT_KWY_NOT_EXIST = 0X0D90,
RETURN_CODE_P2_ACCOUNT_DUKPT_KEY_KSN_EXHAUSTED = 0X0D91,
RETURN_CODE_UNKNOWN_COMMAND = 0X9031,
RETURN_CODE_WRONG_PARAMETER = 0X9032,
RETURN_CODE_WAIT = 0X9038,
RETURN_CODE_BUSY = 0X9039,
RETURN_CODE_RETRIES_OVER_LIMIT = 0X903A,
RETURN_CODE_TIMEOUT = 0X8100,
RETURN_CODE_INVALID_MAN_SYSTEM_DATA = 0X9040,
RETURN_CODE_NOT_AUTHENTICATED = 0X9041,
RETURN_CODE_INVALID_MASTER_DUKPT_KEY = 0X9042,
RETURN_CODE_INVALID_MAC_KEY = 0X9043,
RETURN_CODE_RESERVED_FOR_FUTURE_USE = 0X9044,
RETURN_CODE_RESERVED_FOR_FUTURE_USE_ = 0X9045,
RETURN_CODE_INVALID_DATA_DUKPT_KEY = 0X9046,
RETURN_CODE_INVALID_PIN_PARING_DUKPT_KEY = 0X9047,
RETURN_CODE_INVALID_DATA_PAIRING_DUKPT_KEY = 0X9048,
RETURN_CODE_NO_NONCE_GENERATED = 0X9049,
RETURN_CODE_NO_GUID_AVAILABLE = 0X9949,
RETURN_CODE_NO_MAC_CALCULATION = 0X9950,
RETURN_CODE_NOT_READY = 0X904A,
RETURN_CODE_MSR_DATA_FAILED = 0X904B,
RETURN_CODE_INVALID_CERTIFICATE = 0X9050,
RETURN_CODE_DUPLICATE_KEY_DETECTED = 0X9051,
RETURN_CODE_AT_CHECKS_FAILED = 0X9052,
RETURN_CODE_TR34_CHECKS_FAILED = 0X9053,
RETURN_CODE_TR31_CHECKS_FAILED = 0X9054,
RETURN_CODE_AMC_CHECKS_FAILED = 0X9055,
RETURN_CODE_FIRMWARE_DOWNLOAD_FAILED = 0X9056,
RETURN_CODE_LOG_IS_FULL = 0X9060,
RETURN_CODE_REMOVAL_SENSOR_UNENGAGED = 0X9061,
RETURN_CODE_HARDWARE_PROBLEM = 0X9062,
RETURN_CODE_ICC_COMMUNICATION_TIMEOUT = 0X9070,
RETURN_CODE_IFF_DATA_ERROR = 0X9071,
RETURN_CODE_SMART_CARD_NOT_POWERED_UP = 0X9072,
RETURN_CODE_NO_AID = 0xF200,
RETURN_CODE_NO_TERMINAL_DATA = 0xF201,
RETURN_CODE_WRONG_TLV_FORMAT = 0xF202,
RETURN_CODE_AID_LIST_FULL = 0xF203,
RETURN_CODE_NO_CA_KEY = 0xF204,
RETURN_CODE_NO_CA_KEY_RID = 0xF205,
RETURN_CODE_NO_CA_KEY_INDEX = 0xF206,
RETURN_CODE_CA_KEY_LIST_FULL = 0xF207,
RETURN_CODE_CA_KEY_HASH_ERROR = 0xF208,
RETURN_CODE_COMMAND_FORMAT_ERROR = 0xF209,
RETURN_CODE_UNEXPECTED_COMMAND = 0xF20A,
RETURN_CODE_NO_CRL = 0xF20B,
RETURN_CODE_CRL_LIST_FULL = 0xF20C,
RETURN_CODE_MISSING_REQUIRED_PARAMETERS = 0xF20D,
RETURN_CODE_CA_INCORRECT_HASH_ALGORITHM = 0xF20E,
RETURN_CODE_EMV_AUTHORIZATION_ACCEPTED = 0x0E00,
RETURN_CODE_EMV_AUTHORIZATION_UNABLE_TO_GO_ONLINE = 0x0E01,
RETURN_CODE_EMV_AUTHORIZATION_TECHNICAL_ISSUE = 0x0E02,
RETURN_CODE_EMV_AUTHORIZATION_DECLINED = 0x0E03,
RETURN_CODE_EMV_AUTHORIZATION_ISSUER_REFERRAL = 0x0E04,
RETURN_CODE_EMV_APPROVED = 0x0F00,
RETURN_CODE_EMV_DECLINED = 0x0F01,
RETURN_CODE_EMV_GO_ONLINE = 0x0F02,
RETURN_CODE_EMV_FAILED = 0x0F03,
RETURN_CODE_EMV_SYSTEM_ERROR = 0x0F05,
RETURN_CODE_EMV_NOT_ACCEPTED = 0x0F07,
RETURN_CODE_EMV_FALLBACK = 0x0F0A,
RETURN_CODE_EMV_CANCEL = 0x0F0C,
RETURN_CODE_EMV_TIMEOUT = 0x0F0D,
RETURN_CODE_EMV_OTHER_ERROR = 0x0F0F,
RETURN_CODE_EMV_OFFLINE_APPROVED = 0x0F10,
RETURN_CODE_EMV_OFFLINE_DECLINED = 0x0F11,
RETURN_CODE_EMV_NEW_SELECTION = 0x0F21,
RETURN_CODE_EMV_NO_AVAILABLE_APPS = 0x0F22,
RETURN_CODE_EMV_NO_TERMINAL_FILE = 0x0F23,
RETURN_CODE_EMV_NO_CAPK_FILE = 0x0F24,
RETURN_CODE_EMV_NO_CRL_ENTRY = 0x0F25,
RETURN_CODE_BLOCKING_DISABLED = 0x0FFE,
RETURN_CODE_CM100_WITHOUT_ERROR = 0xBBE0,
RETURN_CODE_CM100_PARAMETER = 0xBBE1,
RETURN_CODE_CM100_LOWOUTBUFFER = 0xBBE2,
RETURN_CODE_CM100_CARD_NOT_FOUND = 0xBBE3,
RETURN_CODE_CM100_COLLISION_CARD_EXIST = 0xBBE4,
RETURN_CODE_CM100_TOO_MANY_CARDS_EXIST = 0xBBE5,
RETURN_CODE_CM100_SAVED_DATA_NOT_EXIST = 0xBBE6,
RETURN_CODE_CM100_NO_DATA_AVAILABLE = 0xBBE8,
RETURN_CODE_CM100_INVALID_CID_RETURNED = 0xBBE9,
RETURN_CODE_CM100_INVALID_CARD_EXIST = 0xBBEA,
RETURN_CODE_CM100_COMMAND_UNSUPPORTED = 0xBBEC,
RETURN_CODE_CM100_COMMAND_PROCESS = 0xBBED,
RETURN_CODE_CM100_INVALID_COMMAND = 0xBBEE,
RETURN_CODE_COMMAND_UNAVAILABLE = 0x0FFF
};