IDTech iOS/OSX SDK Guide  1.1.052
API reference for BTPay 200
 All Data Structures Functions Variables Properties Pages
IDTechEMV.h
1 //
2 // IDTechEMV.h
3 // IDTech
4 //
5 // Created by Randy Palermo on 7/31/14.
6 // Copyright (c) 2014 IDTech Products. All rights reserved.
7 //
8 
9 #import <Foundation/Foundation.h>
10 #import "APDUData.h"
11 #import <IDTech/IDTEMVData.h>
12 #import <IDTech/IDT_DEVICE.h>
13 
21 typedef struct {
22  unsigned char acquirerIdentifier[6];
23  unsigned char aid[16];
24  unsigned char aidLen;
25  unsigned char applicationVersionNumber[2];
26  unsigned char tacDefault[5];
27  unsigned char tacDenial[5];
28  unsigned char tacOnline[5];
29  unsigned char transactionCurrencyCode[2];
31  unsigned char useTACDefault;
32  unsigned char useTACDenial;
33  unsigned char useTACOnline;
35 
36 
38 
39 typedef enum{
40  EMV_RC_APPROVED = 0X00,
41  EMV_RC_DECLINED = 0X01,
42  EMV_RC_GO_ONLINE = 0X02,
43  EMV_RC_FAILED = 0X03,
44  EMV_RC_SYSTEM_ERROR = 0X05,
45  EMV_RC_NOT_ACCEPT = 0X07,
46  EMV_RC_FALLBACK = 0X0A,
47  EMV_RC_CANCEL = 0X0C,
48  EMV_RC_OTHER_ERROR = 0X0F,
49  EMV_RC_TIME_OUT = 0X0D,
50  EMV_RC_OFFLINE_APPROVED = 0X10,
51  EMV_RC_OFFLINE_DECLINED = 0X11,
52  EMV_RC_REFERRAL_PROCESSING = 0X12,
53  EMV_RC_ERROR_APP_PROCESSING = 0X13,
54  EMV_RC_ERROR_APP_READING = 0X14,
55  EMV_RC_ERROR_DATA_AUTH = 0X15,
56  EMV_RC_ERROR_PROCESSING_RESTRICTIONS = 0X16,
57  EMV_RC_ERROR_CVM_PROCESSING = 0X17,
58  EMV_RC_ERROR_RISK_MGMT = 0X18,
59  EMV_RC_ERROR_TERM_ACTION_ANALYSIS = 0X19,
60  EMV_RC_ERROR_CARD_ACTION_ANALYSIS = 0X1A,
61  EMV_RC_ERROR_APP_SELECTION_TIMEOUT = 0X1B,
62  EMV_RC_ERROR_NO_CARD_INSERTED = 0X1C,
63  EMV_RC_ERROR_APP_SELECTING = 0X1D,
64  EMV_RC_ERROR_READING_CARD_APP = 0X1E,
65  EMV_RC_ERROR_POWER_CARD_ERROR = 0X1F,
66  EMV_RC_ERROR_NO_RESULT_CODE_PROVIDED_FOR_COMPLETION = 0X20,
67  EMV_RC_APPROVED_WITH_ADVISE_NO_REASON = 0X21,
68  EMV_RC_APPROVED_WITH_ADVISE_IA_FAILED = 0X22,
69  EMV_RC_ERROR_AMOUNT_NOT_SPECIFIED = 0X23,
70  EMV_RC_ERROR_CARD_COMPLETION = 0X24
71 } EMV_RC_Types;
72 
73 typedef enum{
74  MESSAGE_INSERT_CARD = 0,
75  MESSAGE_REMOVE_CARD,
76  MESSAGE_BAD_ICC,
77  MESSAGE_TRANSACTION_CANCELLED,
78  MESSAGE_FALLBACK_FAILED,
79  MESSAGE_USE_CHIP_READER,
80  MESSAGE_PROCESSING,
81  MESSAGE_READY,
82  MESSAGE_USE_MSR,
83  MESSAGE_NOT_ACCEPTED
84 }MESSAGE_Types;
85 
86 typedef enum{
87  EMV_COMPLETION_RESULT_ACCEPTED = 0X00,
88  EMV_COMPLETION_RESULT_UNABLE_TO_GO_ONLINE = 0X01,
89  EMV_COMPLETION_RESULT_TECHNICAL_ISSUE = 0X02,
90  EMV_COMPLETION_RESULT_DECLINED = 0X03,
91  EMV_COMPLETION_RESULT_ISSUER_REFERAL = 0X04
92 } EMV_COMPLETION_RESULT;
93 
101 typedef struct {
102  unsigned char terminalCountryCode[2];
103  unsigned char merchantCategoryCode[2];
104  unsigned char merchantID[15];
105  unsigned char terminalID[8];
106  unsigned char defaultTACDefault[5];
107  unsigned char defaultTACDenial[5];
108  unsigned char defaultTACOnline[5];
109  unsigned char useDefaultTACDefault;
110  unsigned char useDefaultTACDenial;
111  unsigned char useDefaultTACOnline;
112  unsigned char terminalLocation[36];
113 
115 
116 
117 
118 
120 @protocol IDTechEMV_Delegate <NSObject>
121 @optional
122 - (void) confirmApplicationSelection:(NSArray*)labelArray retry:(BOOL)tryAgain;
123 
134 - (void) languagePreference:(NSData*)lang;
149 - (void) emvTransactionData:(IDTEMVData*)emvData errorCode:(int)error performReversal:(BOOL)reversal;
164 - (void) emvTransactionMessage:(MESSAGE_Types)message;
165 
166 - (void) swipeMSRDataEMV:(IDTMSRData*)cardData emv:(NSDictionary*)emvData;
167 
168 @end
169 
173 @interface IDTechEMV : NSObject <IDT_Device_Delegate> {
174  id<IDTechEMV_Delegate> delegate;
175 }
176 
177 
178 @property(strong) id<IDTechEMV_Delegate> delegate;
179 
180 
188 +(IDTechEMV*) sharedController;
189 
190 
210 -(void) completeOnlineEMVTransaction:(EMV_COMPLETION_RESULT)result resultCode:(NSString*)rc issuerAuthenticationData:(NSString*)iad issuerScripts:(NSString*)scripts;
211 
218 -(void) confirmApplication:(int)index;
219 
220 
226 -(void) confirmApplicationCancel;
227 
228 
229 
240 -(NSDictionary*) getAllTags;
241 
250 -(NSString*) getEMVKernelVersion;
251 
263 -(NSData*) getTag:(NSString*)tagName;
264 
265 
276 -(void) removeApplicationData:(NSString*)AID;
277 
278 
279 
280 
281 
282 
283 
284 
294 -(NSArray*) retrieveAIDList;
295 
296 
308 -(IDTech_ApplicationID) retrieveApplicationData:(NSString*)AID;
309 
310 
311 
312 
321 -(IDTech_TerminalData) retrieveTerminalData;
322 
323 
324 
335 -(void) setApplicationData:(IDTech_ApplicationID)data;
336 
337 
338 
339 
352 -(void) setTag:(NSString*)tagName tagData:(NSData*)data;
353 
354 
366 -(void) preloadEMVCardData;
367 
368 
377 -(void) setTerminalData:(IDTech_TerminalData)data;
378 
379 
380 
387 - (void) cancelTransaction;
388 
441 -(void) startEMVTransaction:(float)amount timeout:(int)timeout transactionType:(int)type additionalTags:(NSMutableDictionary *)tags;
442 
451 -(void) accelerateRead:(BOOL)enabled;
452 
458 -(void) sendSystemError;
459 
460 @end
Definition: IDTechEMV.h:173
Definition: IDTechEMV.h:21
unsigned char useDefaultTACDefault
Indicates if tacDefault value should be used as terminal default value.
Definition: IDTechEMV.h:109
Definition: IDTMSRData.h:36
unsigned char aidLen
AID’s length.
Definition: IDTechEMV.h:24
unsigned char useTACDenial
Indicates if tacDefault value should be used.
Definition: IDTechEMV.h:32
Definition: IDTechEMV.h:101
unsigned char applicationSelectionIndicator
Indicates if partial AID matching is allowed. 0x01 = allowed DF62.
Definition: IDTechEMV.h:34
id< IDTechEMV_Delegate > delegate
Definition: IDTechEMV.h:174
unsigned char useTACDefault
Indicates if tacDefault value should be used.
Definition: IDTechEMV.h:31
Definition: IDTechEMV.h:120
unsigned char useDefaultTACOnline
Indicates if tacOnline value should be used as terminal default value.
Definition: IDTechEMV.h:111
unsigned char transactionCurrencyExponent
Transaction Currency Exponent. Example: Amount $4.53 is managed as 453. Tag 5F36. ...
Definition: IDTechEMV.h:30
unsigned char useTACOnline
Indicates if tacDefault value should be used.
Definition: IDTechEMV.h:33
unsigned char useDefaultTACDenial
Indicates if tacDenial value should be used as terminal default value.
Definition: IDTechEMV.h:110
Definition: IDTEMVData.h:16