|
---|
See ola_contactless.h |
#include
| Code Block |
---|
| #include "ola_emv.h"
#include <stdint.h> |
| |
#define
| Code Block |
---|
#define OLA_KERNEL_ID_MASTERCARD 2
#define OLA_KERNEL_ID_VISA 3
#define OLA_KERNEL_ID_AMEX 4
#define OLA_KERNEL_ID_JCB 5
#define OLA_KERNEL_ID_DISCOVER 6
#define OLA_KERNEL_ID_CUP 7
#define OLA_MSD_ID_APPROVED 0x03
#define OLA_MSD_ID_NOT_AUTHORISED 0x07
#define OLA_MSD_ID_PLEASE_INSERT_OR_SWIPE_CARD 0x18
#define OLA_MSD_ID_AUTHORISING_PLEASE_WAIT 0x1B
#define OLA_MSD_ID_INSERT_SWIPE_OR_TRY_ANOTHER_CARD 0x1C
#define OLA_MSD_ID_SEE_PHONE_FOR_INSTRUCTIONS 0x20 |
| |
| Code Block |
---|
typedef enum
{
ctsNone,
ctsPreprocess,
ctsBuildCandidate,
ctsFinalSelect,
ctsActivate
} tOlaContactlessTransactionStep; |
| |
tOlaOutcome
| Code Block |
---|
| typedef enum
{
outcNone,
outcSelectNext,
outcTryAgain,
outcApproved,
outcDeclined,
outcOnlineRequest,
outcTryAnotherInterface,
outcEndApplication
} tOlaOutcome; |
| |
tOlaStartPoint
| Code Block |
---|
| typedef enum
{
spNoStart,
spStartA,
spStartB,
spStartC,
spStartD,
} tOlaStartPoint; |
| |
tOlaOnlineResponseData
| Code Block |
---|
| typedef enum
{
ordNone,
ordEmv,
ordAny
} tOlaOnlineResponseData; |
| |
tOlaAlternateInterfacePreference
| Code Block |
---|
| typedef enum
{
aipNone,
aipContactChip,
aipMagneticStripe
} tOlaAlternateInterfacePreference; |
| |
| Code Block |
---|
| typedef enum
{
cvmclNone,
cvmclNoCvm,
cvmclSignature,
cvmclOnlinePin,
cvmclConfirmationCodeVerified
} tOlaCVMethodContactless; |
| |
tOlaStatus
| Code Block |
---|
| typedef enum
{
staNone,
staNotReady,
staIdle,
staReadyToRead,
staProcessing,
staCardReadSuccessfully,
staProcessingError
} tOlaStatus; |
| |
tOlaValueQualifier
| Code Block |
---|
| typedef enum
{
vqNone,
vqAmount,
vqBalance
} tOlaValueQualifier; |
| |
tOlaOutcomeParameter
| Code Block |
---|
| typedef struct
{
tOlaOutcome outCome;
tOlaStartPoint startingPoint;
tOlaOnlineResponseData onlineResponseData;
tOlaCVMethodContactless cvm;
int UIReqOnOutcomePresent;
int UIReqOnRestartPresent;
int receipt;
int dataRecordPresent;
int discretionaryDataPresent;
tOlaAlternateInterfacePreference alternateInterfacePreference;
uint32_t fieldOffReq;
uint32_t removalTimeout;
} tOlaOutcomeParameter; |
| |
tOlaUIRequest
| Code Block |
---|
| typedef struct
{
uint8_t messageIdentifier;
tOlaStatus status;
uint32_t holdTime;
uint8_t languagePreference[8]; // List of languages, ISO 639-1 representation
tOlaValueQualifier valueQualifier;
uint8_t value[6]; // BCD
uint8_t currencyCode[2]; // Numeric ISO 4217
} tOlaUIRequest; |
| |
| Code Block |
---|
void ola_contactless_flush_aid_supported(void); |
| |
| Code Block |
---|
| tOLAError ola_contactless_add_aid_supported(
const uint8_t *aid,
uint8_t aidLength,
int partial,
uint8_t kernelId,
uint8_t *tlv,
uint16_t tlvLength
); |
| |
| Code Block |
---|
| uint16_t ola_contactless_add_drl_supported(
const uint8_t *programId,
uint8_t programIdLength,
const uint8_t *transactionLimit,
const uint8_t *floorLimit,
const uint8_t *CVMLimit,
int statusCheck,
int isZeroAllowed,
uint8_t kernelId
); |
| |
| Code Block |
---|
void ola_contactless_commit_supported_aids(void); |
| |
| Code Block |
---|
uint16_t ola_contactless_build_candidate_list(
uint8_t *nb_candidates
); |
| |
| Code Block |
---|
| uint16_t ola_contactless_get_tag_from_candidate(
uint8_t candidate,
uint32_t tag,
uint8_t *value,
uint16_t *length
); |
| |
| Code Block |
---|
| tOLAError ola_contactless_final_select_candidate(
uint8_t candidate,
uint8_t *kernelId
); |
| |
| Code Block |
---|
tOLAError ola_contactless_get_card_preferred_language(
char *language
); |
| |
| Code Block |
---|
| tOLAError ola_contactless_preprocess(void); |
| |
| Code Block |
---|
| tOLAError ola_contactless_do_transaction(void); |
| |
ola_contactless_clean
| Code Block |
---|
| void ola_contactless_clean(void); |
| |
| Code Block |
---|
tOLAError ola_contactless_get_outcome(
tOlaOutcomeParameter *outcome
); |
| |
| Code Block |
---|
| tOLAError ola_contactless_get_UI_request_upon_outcome(
tOlaUIRequest *uiRequest
); |
| |
| Code Block |
---|
| tOLAError ola_contactless_get_UI_request_restart(
tOlaUIRequest *uiRequest
); |
| |