@urovotest/urovosdk-docs-mcp 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +176 -0
- package/docs/00-overview.md +37 -0
- package/docs/01-integration/android-permissions.md +22 -0
- package/docs/01-integration/quickstart-zh.md +54 -0
- package/docs/02-reference/emv/emv-api.md +3308 -0
- package/docs/02-reference/emv/emv-appendix.md +112 -0
- package/docs/02-reference/emv/emv-callback.md +1155 -0
- package/docs/02-reference/emv/emv-enum.md +324 -0
- package/docs/02-reference/error-codes.md +59 -0
- package/docs/02-reference/general/beeper.md +160 -0
- package/docs/02-reference/general/devicemanager.md +460 -0
- package/docs/02-reference/general/insertcardreader.md +307 -0
- package/docs/02-reference/general/install-manager.md +202 -0
- package/docs/02-reference/general/led-light.md +144 -0
- package/docs/02-reference/general/magcardreader.md +191 -0
- package/docs/02-reference/general/pinpad.md +3309 -0
- package/docs/02-reference/general/printer.md +1410 -0
- package/docs/02-reference/general/psam2.md +55 -0
- package/docs/02-reference/general/rfcardreader.md +1090 -0
- package/docs/02-reference/general/scanner-custom.md +196 -0
- package/docs/02-reference/general/scanner.md +214 -0
- package/docs/02-reference/general/sdk-log-output-management.md +124 -0
- package/docs/02-reference/general/serial-port-deprecated-suggest-using-module-14-serialtool.md +406 -0
- package/docs/02-reference/general/serial-port.md +326 -0
- package/docs/02-reference/general/sle4428-4436-4442.md +1890 -0
- package/docs/02-reference/general/system-manager.md +212 -0
- package/docs/02-reference/module-index.md +30 -0
- package/docs/02-reference/source-emv_sdk.md +3927 -0
- package/docs/02-reference/source-general_sdk.md +8978 -0
- package/docs/02-reference/undocumented/kiosk-lock-task.md +92 -0
- package/docs/03-demo/activity-map.md +27 -0
- package/docs/api-registry.json +4733 -0
- package/docs/search-index.json +2688 -0
- package/docs/source/emv_sdk.md +3927 -0
- package/docs/source/general_sdk.md +8978 -0
- package/docs/source/kiosk_lock_task.md +86 -0
- package/package.json +36 -0
- package/src/launch.js +22 -0
- package/src/lib/check-update.js +92 -0
- package/src/lib/create-mcp-server.js +90 -0
- package/src/lib/docs-tools.js +206 -0
- package/src/server.js +10 -0
|
@@ -0,0 +1,3927 @@
|
|
|
1
|
+
# Urovo EMV Kernel SDK API Knowledge Base
|
|
2
|
+
|
|
3
|
+
Source document: `User guide of EMV kernel library API_V2.4.104.pdf`
|
|
4
|
+
Demo project: `UrovoPosSdkDemo`
|
|
5
|
+
Generated: 2026-05-13
|
|
6
|
+
Chunking rule: split on `^### `; each `###` section is intended to describe one EMV API, callback, enum, or FAQ entry.
|
|
7
|
+
|
|
8
|
+
### EMV API / startKernel
|
|
9
|
+
|
|
10
|
+
- Source section: `1.01`
|
|
11
|
+
|
|
12
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
13
|
+
|
|
14
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
Purpose:
|
|
19
|
+
EMV process.
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
Signature/prototype:
|
|
23
|
+
```java
|
|
24
|
+
void startKernel(Hashtable<String,Object>transParams)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
Parameters:
|
|
29
|
+
See below Hashtablekeystable.
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
Return value:
|
|
33
|
+
None
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
Usage notes:
|
|
37
|
+
onRequestSetAmount
|
|
38
|
+
startEmvHashtableKeys1/2
|
|
39
|
+
TransactionSettings
|
|
40
|
+
• emvOption: Indicatewhether toforcetransactiongo online, seeEmvOption
|
|
41
|
+
enumeration.
|
|
42
|
+
• checkCardMode:Indicatewhich checkcardmodetouse, seeCheckCardMode
|
|
43
|
+
enumeration.
|
|
44
|
+
• transactionType: Indicatethetype of financialtransaction(eg:00-goods,
|
|
45
|
+
01-cash,09-cashback, 20--refund)
|
|
46
|
+
• amount:Thetransactionamount. (e.g. "0.01")
|
|
47
|
+
• cashbackAmount:Thecashbackamount.
|
|
48
|
+
• amountEx:Thetransactionamount. (e.g. "001")
|
|
49
|
+
• cashbackAmountEx:Thecashbackamount.
|
|
50
|
+
• currencyCode:The3-digits transactioncurrencycode (e.g. "840" for USD).
|
|
51
|
+
• checkCardTimeout: Indicatethecheckcardtimeout, insecond.
|
|
52
|
+
• isEnterAmtAfterReadRecord:thisflagistrue,youneedtoentertheamountinthe
|
|
53
|
+
onRequestSetAmount callback
|
|
54
|
+
• FallbackSwitch: enableor disable thefallbackfunction 0-disable 1-enable
|
|
55
|
+
• supportDRL: true -Terminal support DRL for Visa, false-Terminel not support
|
|
56
|
+
DRLforVisa.
|
|
57
|
+
•enableBeeper: true - enable beeper when card read successful , false - disable
|
|
58
|
+
beeper when cardreadsuccessful.
|
|
59
|
+
•enableTapSwipeCollision: true - endable Tap/Swipe card collision check, false -
|
|
60
|
+
disableTap/Swipe cardcollision check.
|
|
61
|
+
•DisableCheckMSRFormat: true - Disable check MSR format ,false - Check MSR
|
|
62
|
+
format
|
|
63
|
+
•NeedFallBackTryTimes: (eg:1,2,3…) How many times does it take to fallback after
|
|
64
|
+
thecardreading fails.
|
|
65
|
+
•DisableCheckMSRFormat: true - check the magnetic stripe Format, false - Don`t
|
|
66
|
+
|
|
67
|
+
check
|
|
68
|
+
Mag StripeFormat.
|
|
69
|
+
• enableEncMagStripe: true - Return Encrypt magnetic stripe, false - Return
|
|
70
|
+
Plaintext magnetic stripe
|
|
71
|
+
•MSRKeyIndex: (1-4) DUKPTkey indexfor encrypted magneticstripe
|
|
72
|
+
•forceInputPIN: true - Force input of online PIN, valid for contactless. Note: This
|
|
73
|
+
functioncannot beusedfor L2authentication
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
Simplified example:
|
|
77
|
+
```java
|
|
78
|
+
Hashtable<String, Object> data = new Hashtable<>();
|
|
79
|
+
data.put("checkCardMode", ContantPara.CheckCardMode.SWIPE_OR_INSERT_OR_TAP);
|
|
80
|
+
data.put("emvOption", ContantPara.EmvOption.START);
|
|
81
|
+
data.put("amount", "0");
|
|
82
|
+
data.put("cashbackAmount", "0");
|
|
83
|
+
data.put("checkCardTimeout", "30");
|
|
84
|
+
data.put("transactionType", "00");
|
|
85
|
+
data.put("currencyCode", "156");
|
|
86
|
+
emv.updateTerminalParamters(ContantPara.CardSlot.ICC, "9F3303E0F8C85F2A0201569F1A020156");
|
|
87
|
+
emv.updateTerminalParamters(ContantPara.CardSlot.PICC, "9F3303E0F8C85F2A0201569F1A020156");
|
|
88
|
+
emv.startKernel(data);
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
Source details:
|
|
93
|
+
```text
|
|
94
|
+
Declare: void startKernel(Hashtable<String,Object>transParams)
|
|
95
|
+
Start the transaction with specified CheckCardMode,go through all the
|
|
96
|
+
Description:
|
|
97
|
+
EMV process.
|
|
98
|
+
Parameters: See below Hashtablekeystable.
|
|
99
|
+
Return: None
|
|
100
|
+
Remark: onRequestSetAmount
|
|
101
|
+
startEmvHashtableKeys1/2
|
|
102
|
+
TransactionSettings
|
|
103
|
+
• emvOption: Indicatewhether toforcetransactiongo online, seeEmvOption
|
|
104
|
+
enumeration.
|
|
105
|
+
• checkCardMode:Indicatewhich checkcardmodetouse, seeCheckCardMode
|
|
106
|
+
enumeration.
|
|
107
|
+
• transactionType: Indicatethetype of financialtransaction(eg:00-goods,
|
|
108
|
+
01-cash,09-cashback, 20--refund)
|
|
109
|
+
• amount:Thetransactionamount. (e.g. "0.01")
|
|
110
|
+
• cashbackAmount:Thecashbackamount.
|
|
111
|
+
• amountEx:Thetransactionamount. (e.g. "001")
|
|
112
|
+
• cashbackAmountEx:Thecashbackamount.
|
|
113
|
+
• currencyCode:The3-digits transactioncurrencycode (e.g. "840" for USD).
|
|
114
|
+
• checkCardTimeout: Indicatethecheckcardtimeout, insecond.
|
|
115
|
+
• isEnterAmtAfterReadRecord:thisflagistrue,youneedtoentertheamountinthe
|
|
116
|
+
onRequestSetAmount callback
|
|
117
|
+
• FallbackSwitch: enableor disable thefallbackfunction 0-disable 1-enable
|
|
118
|
+
• supportDRL: true -Terminal support DRL for Visa, false-Terminel not support
|
|
119
|
+
DRLforVisa.
|
|
120
|
+
•enableBeeper: true - enable beeper when card read successful , false - disable
|
|
121
|
+
beeper when cardreadsuccessful.
|
|
122
|
+
•enableTapSwipeCollision: true - endable Tap/Swipe card collision check, false -
|
|
123
|
+
disableTap/Swipe cardcollision check.
|
|
124
|
+
•DisableCheckMSRFormat: true - Disable check MSR format ,false - Check MSR
|
|
125
|
+
format
|
|
126
|
+
•NeedFallBackTryTimes: (eg:1,2,3…) How many times does it take to fallback after
|
|
127
|
+
thecardreading fails.
|
|
128
|
+
•DisableCheckMSRFormat: true - check the magnetic stripe Format, false - Don`t
|
|
129
|
+
|
|
130
|
+
check
|
|
131
|
+
Mag StripeFormat.
|
|
132
|
+
• enableEncMagStripe: true - Return Encrypt magnetic stripe, false - Return
|
|
133
|
+
Plaintext magnetic stripe
|
|
134
|
+
•MSRKeyIndex: (1-4) DUKPTkey indexfor encrypted magneticstripe
|
|
135
|
+
•forceInputPIN: true - Force input of online PIN, valid for contactless. Note: This
|
|
136
|
+
functioncannot beusedfor L2authentication
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### EMV API / abortKernel
|
|
140
|
+
|
|
141
|
+
- Source section: `1.02`
|
|
142
|
+
|
|
143
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
144
|
+
|
|
145
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
Purpose:
|
|
150
|
+
Declare: public void abortKernel ()
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
Signature/prototype:
|
|
154
|
+
```java
|
|
155
|
+
public void abortKernel ()
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
Simplified example:
|
|
160
|
+
```java
|
|
161
|
+
if (emv != null) {
|
|
162
|
+
emv.abortKernel();
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
Source details:
|
|
168
|
+
```text
|
|
169
|
+
Declare: public void abortKernel ()
|
|
170
|
+
Description: abortKernel,stopcheckcard,stopseephonecheckcard
|
|
171
|
+
Parameters: none
|
|
172
|
+
Return:
|
|
173
|
+
Remark:
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### EMV API / setAmountEx
|
|
177
|
+
|
|
178
|
+
- Source section: `1.03`
|
|
179
|
+
|
|
180
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
181
|
+
|
|
182
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
Purpose:
|
|
187
|
+
storethevaluesand
|
|
188
|
+
IfthefunctionreturnFalse, thetransactionshould beterminate
|
|
189
|
+
• amount :Thetransactionamount.
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
Signature/prototype:
|
|
193
|
+
```java
|
|
194
|
+
cashbackAmount)
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
Parameters:
|
|
199
|
+
• cashbackAmount :The cashbackamount.
|
|
200
|
+
True-Amountvalues areset.
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
Return value:
|
|
204
|
+
False- Failed toset values.
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
Usage notes:
|
|
208
|
+
OnlyuseinonRequestSetAmount
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
Simplified example:
|
|
212
|
+
```java
|
|
213
|
+
public void onRequestSetAmount() {
|
|
214
|
+
emv.setAmountEx(100L, 0L);
|
|
215
|
+
}
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
Source details:
|
|
220
|
+
```text
|
|
221
|
+
public Boolean setAmountEx(String amount, String
|
|
222
|
+
Declare:
|
|
223
|
+
cashbackAmount)
|
|
224
|
+
Set theamount,cashbackamountin responseto
|
|
225
|
+
onRequestSetAmount.
|
|
226
|
+
Thisfunction canbe calledbefore atransaction.TheAPI will
|
|
227
|
+
Description:
|
|
228
|
+
storethevaluesand
|
|
229
|
+
IfthefunctionreturnFalse, thetransactionshould beterminate
|
|
230
|
+
• amount :Thetransactionamount.
|
|
231
|
+
Parameters: • cashbackAmount :The cashbackamount.
|
|
232
|
+
True-Amountvalues areset.
|
|
233
|
+
Return:
|
|
234
|
+
False- Failed toset values.
|
|
235
|
+
Remark: OnlyuseinonRequestSetAmount
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### EMV API / sendConfirmCardnoResult
|
|
239
|
+
|
|
240
|
+
- Source section: `1.04`
|
|
241
|
+
|
|
242
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
243
|
+
|
|
244
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
Purpose:
|
|
249
|
+
Confirmthecardnumberisright,callatonRequestConfirmCardno()
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
Signature/prototype:
|
|
253
|
+
```java
|
|
254
|
+
void sendConfirmCardnoResult(Booleanisconfirm)
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
Parameters:
|
|
259
|
+
True false
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
Return value:
|
|
263
|
+
None
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
Usage notes:
|
|
267
|
+
None
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
Source details:
|
|
271
|
+
```text
|
|
272
|
+
Declare: void sendConfirmCardnoResult(Booleanisconfirm)
|
|
273
|
+
|
|
274
|
+
Description: Confirmthecardnumberisright,callatonRequestConfirmCardno()
|
|
275
|
+
Parameters: True false
|
|
276
|
+
Return: None
|
|
277
|
+
Remark: None
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### EMV API / selectApplication
|
|
281
|
+
|
|
282
|
+
- Source section: `1.05`
|
|
283
|
+
|
|
284
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
285
|
+
|
|
286
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
Purpose:
|
|
291
|
+
onRequestSelectApplication.
|
|
292
|
+
TheAppshould prompt thecustomerfor anapplication to
|
|
293
|
+
continuethe
|
|
294
|
+
transaction.
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
Signature/prototype:
|
|
298
|
+
```java
|
|
299
|
+
voidselectApplication(int index)
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
Parameters:
|
|
304
|
+
Theindex oftheapplication selected.
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
Return value:
|
|
308
|
+
None
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
Usage notes:
|
|
312
|
+
onRequestSelectApplication
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
Source details:
|
|
316
|
+
```text
|
|
317
|
+
Declare: voidselectApplication(int index)
|
|
318
|
+
Anchip cardmaysupportmultiple payment applications.The list
|
|
319
|
+
ofApplications
|
|
320
|
+
IDssupportedbythecardanddevice isreturnedin
|
|
321
|
+
Description: onRequestSelectApplication.
|
|
322
|
+
TheAppshould prompt thecustomerfor anapplication to
|
|
323
|
+
continuethe
|
|
324
|
+
transaction.
|
|
325
|
+
Parameters: Theindex oftheapplication selected.
|
|
326
|
+
Return: None
|
|
327
|
+
Remark: onRequestSelectApplication
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### EMV API / sendFinalConfirmResult
|
|
331
|
+
|
|
332
|
+
- Source section: `1.06`
|
|
333
|
+
|
|
334
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
335
|
+
|
|
336
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
Purpose:
|
|
341
|
+
inresponsetoonRequestFinalConfirm.
|
|
342
|
+
• isConfirmed: Indicate theconfirmation result.True- Confirm
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
Signature/prototype:
|
|
346
|
+
```java
|
|
347
|
+
void sendFinalConfirmResult(boolean isConfirmed)
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
Parameters:
|
|
352
|
+
tocontinue thetransaction. False- Cancel thetransaction.
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
Return value:
|
|
356
|
+
None
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
Usage notes:
|
|
360
|
+
onRequestFinalConfirm
|
|
361
|
+
|
|
362
|
+
|
|
363
|
+
Source details:
|
|
364
|
+
```text
|
|
365
|
+
Declare: void sendFinalConfirmResult(boolean isConfirmed)
|
|
366
|
+
Sendthefinal confirmationtoproceedor cancelthetransaction
|
|
367
|
+
Description:
|
|
368
|
+
inresponsetoonRequestFinalConfirm.
|
|
369
|
+
• isConfirmed: Indicate theconfirmation result.True- Confirm
|
|
370
|
+
Parameters:
|
|
371
|
+
tocontinue thetransaction. False- Cancel thetransaction.
|
|
372
|
+
Return: None
|
|
373
|
+
Remark: onRequestFinalConfirm
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
### EMV API / sendOnlineProcessResult
|
|
377
|
+
|
|
378
|
+
- Source section: `1.07`
|
|
379
|
+
|
|
380
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
381
|
+
|
|
382
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
|
|
386
|
+
Purpose:
|
|
387
|
+
bOnlineResult
|
|
388
|
+
• true: go online success
|
|
389
|
+
• false: goonline fail(unable togoonline)
|
|
390
|
+
|
|
391
|
+
Aset of transaction resultsinTag-Length-Value format.
|
|
392
|
+
Thefollowing tagsareusually returnedtothecard:
|
|
393
|
+
• Tag8A:AuthorisationResponseCode (Mandatory)
|
|
394
|
+
• Tag89:Authorisation Code
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
Signature/prototype:
|
|
398
|
+
```java
|
|
399
|
+
void sendOnlineProcessResult(BooleanbOnlineResult, String tlv)
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
|
|
403
|
+
Parameters:
|
|
404
|
+
• Tag91: IssuerAuthentication Data
|
|
405
|
+
• Tag71: Issuer ScriptTemplate1
|
|
406
|
+
• Tag72: Issuer ScriptTemplate2
|
|
407
|
+
Example:
|
|
408
|
+
String tlv= "8A02303091083132333435363738"
|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
Return value:
|
|
412
|
+
None
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
Usage notes:
|
|
416
|
+
onRequestOnlineProcess
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
Simplified example:
|
|
420
|
+
```java
|
|
421
|
+
public void onRequestOnlineProcess(String cardTlvData, String dataKsn) {
|
|
422
|
+
String issuerTlv = "8A023030"; // approval response code 00
|
|
423
|
+
emv.sendOnlineProcessResult(issuerTlv);
|
|
424
|
+
}
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
|
|
428
|
+
Source details:
|
|
429
|
+
```text
|
|
430
|
+
Declare: void sendOnlineProcessResult(BooleanbOnlineResult, String tlv)
|
|
431
|
+
Sendbacktheonline processresulttothecardin responseto
|
|
432
|
+
onRequestOnlineProcess.Toterminatethetransaction, sendnull
|
|
433
|
+
oremptystring as result.
|
|
434
|
+
Description:
|
|
435
|
+
bOnlineResult
|
|
436
|
+
• true: go online success
|
|
437
|
+
• false: goonline fail(unable togoonline)
|
|
438
|
+
|
|
439
|
+
Aset of transaction resultsinTag-Length-Value format.
|
|
440
|
+
Thefollowing tagsareusually returnedtothecard:
|
|
441
|
+
• Tag8A:AuthorisationResponseCode (Mandatory)
|
|
442
|
+
• Tag89:Authorisation Code
|
|
443
|
+
Parameters: • Tag91: IssuerAuthentication Data
|
|
444
|
+
• Tag71: Issuer ScriptTemplate1
|
|
445
|
+
• Tag72: Issuer ScriptTemplate2
|
|
446
|
+
Example:
|
|
447
|
+
String tlv= "8A02303091083132333435363738"
|
|
448
|
+
Return: None
|
|
449
|
+
Remark: onRequestOnlineProcess
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
### EMV API / ProcOnlinePinAgain
|
|
453
|
+
|
|
454
|
+
- Source section: `1.08`
|
|
455
|
+
|
|
456
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
457
|
+
|
|
458
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
459
|
+
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
Purpose:
|
|
463
|
+
Ifyounotsupportbypass,youcancallthisapi,restartpopuppinpad
|
|
464
|
+
|
|
465
|
+
|
|
466
|
+
Signature/prototype:
|
|
467
|
+
```java
|
|
468
|
+
public void ProcOnlinePinAgain()
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
|
|
472
|
+
Parameters:
|
|
473
|
+
None
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
Return value:
|
|
477
|
+
None
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
Usage notes:
|
|
481
|
+
Useinonlinepin
|
|
482
|
+
|
|
483
|
+
|
|
484
|
+
Source details:
|
|
485
|
+
```text
|
|
486
|
+
Declare: public void ProcOnlinePinAgain()
|
|
487
|
+
Description: Ifyounotsupportbypass,youcancallthisapi,restartpopuppinpad
|
|
488
|
+
Parameters: None
|
|
489
|
+
Return: None
|
|
490
|
+
Remark: Useinonlinepin
|
|
491
|
+
```
|
|
492
|
+
|
|
493
|
+
### EMV API / sendPinEntry
|
|
494
|
+
|
|
495
|
+
- Source section: `1.09`
|
|
496
|
+
|
|
497
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
498
|
+
|
|
499
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
500
|
+
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
Purpose:
|
|
504
|
+
Tell Userhasenteredonline pin
|
|
505
|
+
|
|
506
|
+
|
|
507
|
+
Signature/prototype:
|
|
508
|
+
```java
|
|
509
|
+
void sendPinEntry()
|
|
510
|
+
```
|
|
511
|
+
|
|
512
|
+
|
|
513
|
+
Return value:
|
|
514
|
+
None
|
|
515
|
+
|
|
516
|
+
|
|
517
|
+
Usage notes:
|
|
518
|
+
Useinonlinepin
|
|
519
|
+
|
|
520
|
+
|
|
521
|
+
Source details:
|
|
522
|
+
```text
|
|
523
|
+
Declare: void sendPinEntry()
|
|
524
|
+
Description: Tell Userhasenteredonline pin
|
|
525
|
+
Parameters:
|
|
526
|
+
Return: None
|
|
527
|
+
Remark: Useinonlinepin
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
### EMV API / bypassPinEntry
|
|
531
|
+
|
|
532
|
+
- Source section: `1.10`
|
|
533
|
+
|
|
534
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
535
|
+
|
|
536
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
537
|
+
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
Purpose:
|
|
541
|
+
thecarddoes not acceptbypassing, thetransactionwill be
|
|
542
|
+
aborted.
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
Signature/prototype:
|
|
546
|
+
```java
|
|
547
|
+
void bypassPinEntry()
|
|
548
|
+
```
|
|
549
|
+
|
|
550
|
+
|
|
551
|
+
Parameters:
|
|
552
|
+
None
|
|
553
|
+
|
|
554
|
+
|
|
555
|
+
Return value:
|
|
556
|
+
None
|
|
557
|
+
|
|
558
|
+
|
|
559
|
+
Usage notes:
|
|
560
|
+
Useinonlinepin
|
|
561
|
+
|
|
562
|
+
|
|
563
|
+
Source details:
|
|
564
|
+
```text
|
|
565
|
+
Declare: void bypassPinEntry()
|
|
566
|
+
Bypass thePINentrystepinresponsetoonRequestPinEntry If
|
|
567
|
+
Description: thecarddoes not acceptbypassing, thetransactionwill be
|
|
568
|
+
aborted.
|
|
569
|
+
Parameters: None
|
|
570
|
+
Return: None
|
|
571
|
+
Remark: Useinonlinepin
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
### EMV API / cancelPinEntry
|
|
575
|
+
|
|
576
|
+
- Source section: `1.11`
|
|
577
|
+
|
|
578
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
579
|
+
|
|
580
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
581
|
+
|
|
582
|
+
|
|
583
|
+
|
|
584
|
+
Purpose:
|
|
585
|
+
thecarddoes not acceptbypassing, thetransactionwill be
|
|
586
|
+
aborted.
|
|
587
|
+
|
|
588
|
+
|
|
589
|
+
Signature/prototype:
|
|
590
|
+
```java
|
|
591
|
+
void cancelPinEntry()
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
|
|
595
|
+
Parameters:
|
|
596
|
+
None
|
|
597
|
+
|
|
598
|
+
|
|
599
|
+
Return value:
|
|
600
|
+
None
|
|
601
|
+
|
|
602
|
+
|
|
603
|
+
Usage notes:
|
|
604
|
+
Useinonlinepin
|
|
605
|
+
|
|
606
|
+
|
|
607
|
+
Source details:
|
|
608
|
+
```text
|
|
609
|
+
Declare: void cancelPinEntry()
|
|
610
|
+
CancelthePINentry stepin responsetoonRequestPinEntry If
|
|
611
|
+
Description: thecarddoes not acceptbypassing, thetransactionwill be
|
|
612
|
+
aborted.
|
|
613
|
+
Parameters: None
|
|
614
|
+
Return: None
|
|
615
|
+
Remark: Useinonlinepin
|
|
616
|
+
```
|
|
617
|
+
|
|
618
|
+
### EMV API / updateTerminalParamters
|
|
619
|
+
|
|
620
|
+
- Source section: `1.12`
|
|
621
|
+
|
|
622
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
623
|
+
|
|
624
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
625
|
+
|
|
626
|
+
|
|
627
|
+
|
|
628
|
+
Purpose:
|
|
629
|
+
issupportedand allow toupdate.
|
|
630
|
+
ContantPara.CardSlot.ICC: UpdateICCTerminalParamters
|
|
631
|
+
ContantPara.CardSlot.PICC:UpdatePICCTerminal Paramters
|
|
632
|
+
ContantPara.CardSlot.UNKNOW:UpdateICCandPICC
|
|
633
|
+
|
|
634
|
+
|
|
635
|
+
Signature/prototype:
|
|
636
|
+
```java
|
|
637
|
+
cardSlot,String tlv)
|
|
638
|
+
```
|
|
639
|
+
|
|
640
|
+
|
|
641
|
+
Parameters:
|
|
642
|
+
TerminalParamters.
|
|
643
|
+
Aterminal configurationparameterinTag-Length-Value format.
|
|
644
|
+
See below tablefor thelist of tags.
|
|
645
|
+
|
|
646
|
+
|
|
647
|
+
Return value:
|
|
648
|
+
True-updatesuccess,False-updatefailed
|
|
649
|
+
|
|
650
|
+
|
|
651
|
+
Usage notes:
|
|
652
|
+
Tag Format Length describe
|
|
653
|
+
9F1A n3 2 bytes Terminal Country
|
|
654
|
+
Code.
|
|
655
|
+
9F01 n12 6 bytes Transaction
|
|
656
|
+
CurrencyCode.
|
|
657
|
+
5F36 b 1 byte Transaction
|
|
658
|
+
Currency
|
|
659
|
+
Exponent.
|
|
660
|
+
9F4E ans0-40 Variable 0-40 Merchant Name
|
|
661
|
+
andLocation.
|
|
662
|
+
9F16 Ans0-15 Variable0-15 bytes MerchantIdentifier.
|
|
663
|
+
9F1C An0-8 Variable 0-8 bytes Terminal
|
|
664
|
+
Identification.
|
|
665
|
+
9F33 b 3 bytes Terminal
|
|
666
|
+
Capabilities.
|
|
667
|
+
|
|
668
|
+
(default: E0F8C8)
|
|
669
|
+
9F35 n2 1 byte TerminalType.
|
|
670
|
+
(default: 22)
|
|
671
|
+
9F40 b 5 byte Additional Terminal
|
|
672
|
+
Capabilities
|
|
673
|
+
9F15 n4 2 byte Merchant Category
|
|
674
|
+
Code
|
|
675
|
+
DF02 b 1 byte Ramdom
|
|
676
|
+
TransactionSwitch
|
|
677
|
+
DF03 b 1 byte Exception File
|
|
678
|
+
CheckSwitch
|
|
679
|
+
DF04 b 1 byte SupportSM
|
|
680
|
+
DF05 b 1 byte Valocity Check
|
|
681
|
+
enable
|
|
682
|
+
DF7F b 5-17 byte Terminals prioritize
|
|
683
|
+
AID (PURE/VCCS
|
|
684
|
+
kernel)
|
|
685
|
+
|
|
686
|
+
|
|
687
|
+
Simplified example:
|
|
688
|
+
```java
|
|
689
|
+
String terminalTlv = "9F3303E0F8C85F2A0201569F1A020156";
|
|
690
|
+
emv.updateTerminalParamters(ContantPara.CardSlot.UNKNOW, terminalTlv);
|
|
691
|
+
```
|
|
692
|
+
|
|
693
|
+
|
|
694
|
+
Source details:
|
|
695
|
+
```text
|
|
696
|
+
Boolean updateTerminalParamters (ContantPara.CardSlot
|
|
697
|
+
Declare:
|
|
698
|
+
cardSlot,String tlv)
|
|
699
|
+
Updateaterminal configurationparameter,provided thatthetag
|
|
700
|
+
Description:
|
|
701
|
+
issupportedand allow toupdate.
|
|
702
|
+
ContantPara.CardSlot.ICC: UpdateICCTerminalParamters
|
|
703
|
+
ContantPara.CardSlot.PICC:UpdatePICCTerminal Paramters
|
|
704
|
+
ContantPara.CardSlot.UNKNOW:UpdateICCandPICC
|
|
705
|
+
Parameters: TerminalParamters.
|
|
706
|
+
Aterminal configurationparameterinTag-Length-Value format.
|
|
707
|
+
See below tablefor thelist of tags.
|
|
708
|
+
Return: True-updatesuccess,False-updatefailed
|
|
709
|
+
Remark:
|
|
710
|
+
Tag Format Length describe
|
|
711
|
+
9F1A n3 2 bytes Terminal Country
|
|
712
|
+
Code.
|
|
713
|
+
9F01 n12 6 bytes Transaction
|
|
714
|
+
CurrencyCode.
|
|
715
|
+
5F36 b 1 byte Transaction
|
|
716
|
+
Currency
|
|
717
|
+
Exponent.
|
|
718
|
+
9F4E ans0-40 Variable 0-40 Merchant Name
|
|
719
|
+
andLocation.
|
|
720
|
+
9F16 Ans0-15 Variable0-15 bytes MerchantIdentifier.
|
|
721
|
+
9F1C An0-8 Variable 0-8 bytes Terminal
|
|
722
|
+
Identification.
|
|
723
|
+
9F33 b 3 bytes Terminal
|
|
724
|
+
Capabilities.
|
|
725
|
+
|
|
726
|
+
(default: E0F8C8)
|
|
727
|
+
9F35 n2 1 byte TerminalType.
|
|
728
|
+
(default: 22)
|
|
729
|
+
9F40 b 5 byte Additional Terminal
|
|
730
|
+
Capabilities
|
|
731
|
+
9F15 n4 2 byte Merchant Category
|
|
732
|
+
Code
|
|
733
|
+
DF02 b 1 byte Ramdom
|
|
734
|
+
TransactionSwitch
|
|
735
|
+
DF03 b 1 byte Exception File
|
|
736
|
+
CheckSwitch
|
|
737
|
+
DF04 b 1 byte SupportSM
|
|
738
|
+
DF05 b 1 byte Valocity Check
|
|
739
|
+
enable
|
|
740
|
+
DF7F b 5-17 byte Terminals prioritize
|
|
741
|
+
AID (PURE/VCCS
|
|
742
|
+
kernel)
|
|
743
|
+
```
|
|
744
|
+
|
|
745
|
+
### EMV API / updateCAPK
|
|
746
|
+
|
|
747
|
+
- Source section: `1.13`
|
|
748
|
+
|
|
749
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
750
|
+
|
|
751
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java and UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/TestEmv.java`
|
|
752
|
+
|
|
753
|
+
|
|
754
|
+
|
|
755
|
+
Purpose:
|
|
756
|
+
UpdateaCertificateAuthorityPublic Key objectin thedevice.
|
|
757
|
+
TheCAPKobjecttobeupdated.Theobjectcontainsthelocation
|
|
758
|
+
oftheCAPK in thedevice, theRID, index, modulus,exponent
|
|
759
|
+
andthechecksumof theCAPK, all
|
|
760
|
+
datainhex stringformat.
|
|
761
|
+
Rid:Identify public keyof certification center
|
|
762
|
+
Index:Identifypublic keyofcertificationcentertogetherwithRID
|
|
763
|
+
Exponent: Public keyexponent
|
|
764
|
+
Modulus:Module value of public key
|
|
765
|
+
Checksum:Toverifypublic keyof certificationcenter
|
|
766
|
+
|
|
767
|
+
|
|
768
|
+
Signature/prototype:
|
|
769
|
+
```java
|
|
770
|
+
Hashtable<String,String>capkParams)
|
|
771
|
+
```
|
|
772
|
+
|
|
773
|
+
|
|
774
|
+
Parameters:
|
|
775
|
+
Toremove aCAPK entry at thespecifiedlocation, set withthe
|
|
776
|
+
following values:
|
|
777
|
+
• RID (5bytes) = "A000000004"
|
|
778
|
+
• Index(1byte) = "01"
|
|
779
|
+
• Exponent (1byte or 3bytes) = "03"
|
|
780
|
+
• Modulus (Nbytes) ="00"
|
|
781
|
+
• Size (2bytes) (not use)
|
|
782
|
+
• Checksum (20bytes) = SHA-1[RID|| Index|| Modulus ||
|
|
783
|
+
Exponent]
|
|
784
|
+
|
|
785
|
+
|
|
786
|
+
Return value:
|
|
787
|
+
True-updatesuccess False-updatefailed
|
|
788
|
+
|
|
789
|
+
|
|
790
|
+
Usage notes:
|
|
791
|
+
Mandatory: RID&Index&Exponent&Modulus
|
|
792
|
+
|
|
793
|
+
|
|
794
|
+
Simplified example:
|
|
795
|
+
```java
|
|
796
|
+
Hashtable<String, String> capk = new Hashtable<>();
|
|
797
|
+
capk.put("RID", "A000000003");
|
|
798
|
+
capk.put("Index", "08");
|
|
799
|
+
capk.put("Exponent", "03");
|
|
800
|
+
capk.put("Modulus", "...");
|
|
801
|
+
capk.put("Checksum", "...");
|
|
802
|
+
boolean ok = emv.updateCAPK(ContantPara.Operation.ADD, capk);
|
|
803
|
+
```
|
|
804
|
+
|
|
805
|
+
|
|
806
|
+
Source details:
|
|
807
|
+
```text
|
|
808
|
+
Boolean updateCAPK(ContantPara.Operation operation,
|
|
809
|
+
Declare:
|
|
810
|
+
Hashtable<String,String>capkParams)
|
|
811
|
+
Description: UpdateaCertificateAuthorityPublic Key objectin thedevice.
|
|
812
|
+
TheCAPKobjecttobeupdated.Theobjectcontainsthelocation
|
|
813
|
+
oftheCAPK in thedevice, theRID, index, modulus,exponent
|
|
814
|
+
andthechecksumof theCAPK, all
|
|
815
|
+
datainhex stringformat.
|
|
816
|
+
Rid:Identify public keyof certification center
|
|
817
|
+
Index:Identifypublic keyofcertificationcentertogetherwithRID
|
|
818
|
+
Exponent: Public keyexponent
|
|
819
|
+
Modulus:Module value of public key
|
|
820
|
+
Checksum:Toverifypublic keyof certificationcenter
|
|
821
|
+
Parameters:
|
|
822
|
+
Toremove aCAPK entry at thespecifiedlocation, set withthe
|
|
823
|
+
following values:
|
|
824
|
+
• RID (5bytes) = "A000000004"
|
|
825
|
+
• Index(1byte) = "01"
|
|
826
|
+
• Exponent (1byte or 3bytes) = "03"
|
|
827
|
+
• Modulus (Nbytes) ="00"
|
|
828
|
+
• Size (2bytes) (not use)
|
|
829
|
+
• Checksum (20bytes) = SHA-1[RID|| Index|| Modulus ||
|
|
830
|
+
Exponent]
|
|
831
|
+
Return: True-updatesuccess False-updatefailed
|
|
832
|
+
|
|
833
|
+
Remark: Mandatory: RID&Index&Exponent&Modulus
|
|
834
|
+
```
|
|
835
|
+
|
|
836
|
+
### EMV API / updateAID
|
|
837
|
+
|
|
838
|
+
- Source section: `1.14`
|
|
839
|
+
|
|
840
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
841
|
+
|
|
842
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java and UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/TestEmv.java`
|
|
843
|
+
|
|
844
|
+
|
|
845
|
+
|
|
846
|
+
Purpose:
|
|
847
|
+
modifyingtheAID infowithupdateAID command.
|
|
848
|
+
|
|
849
|
+
Hashtablekeys
|
|
850
|
+
• CardType: "IcCard"
|
|
851
|
+
• aid:Application Identifier (AID).
|
|
852
|
+
• appVersion:Application VersionNumber.
|
|
853
|
+
• contactTACDefault: IdentifytheAcquirer'sconditionsto
|
|
854
|
+
rejecttransactionswhen thetransactionis able tobecompleted
|
|
855
|
+
online but theterminal lackssuchcapability.
|
|
856
|
+
• contactTACDenial:IdentifytheAcquirer's conditionsfor not
|
|
857
|
+
tryinganyonline processingi.e. rejectionof transactions.
|
|
858
|
+
• contactTACOnline:IdentifytheAcquirer's conditionsfor
|
|
859
|
+
online transactions
|
|
860
|
+
• defaultTDOL:TransactionCertificateData ObjectList
|
|
861
|
+
(TDOL).
|
|
862
|
+
• defaultDDOL: DynamicDataAuthenticationDataObjectList
|
|
863
|
+
(DDOL). DDOLused forestablishmentof internalcertification
|
|
864
|
+
commandwhen thereis no DDOLin thecard.
|
|
865
|
+
• terminalFloorLimit: ContactTerminal Floor Limit. The
|
|
866
|
+
lowest offlinelimit allowed at theterminalin ICcardpurchase
|
|
867
|
+
•AppSelIndicator:application selectindicator 00-party
|
|
868
|
+
match,01-fullmatch,default 00
|
|
869
|
+
• AcquirerIdentifier:Acquirer Identifier.
|
|
870
|
+
|
|
871
|
+
|
|
872
|
+
Signature/prototype:
|
|
873
|
+
```java
|
|
874
|
+
Hashtable<String,String>aidParams)
|
|
875
|
+
```
|
|
876
|
+
|
|
877
|
+
|
|
878
|
+
Parameters:
|
|
879
|
+
• TerminalCapabilities: terminal Capabilities 9F33
|
|
880
|
+
• terminalCountryCode:terminal countrycode9F1A
|
|
881
|
+
• ThresholdValue:Value used in terminal risk management for
|
|
882
|
+
random transaction selection. Present if the Combination
|
|
883
|
+
supportsRandom TransactionSelection (EMV Mode only)
|
|
884
|
+
Eg:"000000002000"
|
|
885
|
+
• TargetPercentage: Present if the Combination supports Random
|
|
886
|
+
TransactionSelection(EMVModeonly)
|
|
887
|
+
Eg:"00"
|
|
888
|
+
•MaxTargetPercentage:Value used in terminal risk management for
|
|
889
|
+
random transaction selection - present if the Combination supports
|
|
890
|
+
RandomTransactionSelection(EMVModeonly)
|
|
891
|
+
Eg:"00"
|
|
892
|
+
HashtableValues
|
|
893
|
+
• Datain hex stringformat.
|
|
894
|
+
Example:
|
|
895
|
+
b8Statuscheckingsupported
|
|
896
|
+
b7RFU
|
|
897
|
+
b6transactionlimitcheckingsupported
|
|
898
|
+
b5contactlessfloorlimitcheckingsupported
|
|
899
|
+
b4contactlesscvmlimitcheckingsupported
|
|
900
|
+
b3zeroamountcheckingsupported
|
|
901
|
+
b2zeroamountcheckingoption1supported
|
|
902
|
+
b1RFU
|
|
903
|
+
b8Statuscheckingsupported
|
|
904
|
+
b7RFU
|
|
905
|
+
b6transactionlimitcheckingsupported
|
|
906
|
+
b5contactlessfloorlimitcheckingsupported
|
|
907
|
+
b4contactlesscvmlimitcheckingsupported
|
|
908
|
+
b3zeroamountcheckingsupported
|
|
909
|
+
b2zeroamountcheckingoption1supported
|
|
910
|
+
b1RFU
|
|
911
|
+
b8Statuscheckingsupported
|
|
912
|
+
b7RFU
|
|
913
|
+
b6transactionlimitcheckingsupported
|
|
914
|
+
b5contactlessfloorlimitcheckingsupported
|
|
915
|
+
b4contactlesscvmlimitcheckingsupported
|
|
916
|
+
b3zeroamountcheckingsupported
|
|
917
|
+
b2zeroamountcheckingoption1supported
|
|
918
|
+
b1RFU
|
|
919
|
+
|
|
920
|
+
|
|
921
|
+
Return value:
|
|
922
|
+
True-updatesuccess False-updatefailed
|
|
923
|
+
|
|
924
|
+
|
|
925
|
+
Simplified example:
|
|
926
|
+
```java
|
|
927
|
+
Hashtable<String, String> aid = new Hashtable<>();
|
|
928
|
+
aid.put("CardType", "IcCard");
|
|
929
|
+
aid.put("aid", "A0000000031010");
|
|
930
|
+
aid.put("appVersion", "008C");
|
|
931
|
+
aid.put("terminalCountryCode", "0156");
|
|
932
|
+
boolean ok = emv.updateAID(ContantPara.Operation.ADD, aid);
|
|
933
|
+
```
|
|
934
|
+
|
|
935
|
+
|
|
936
|
+
Source details:
|
|
937
|
+
```text
|
|
938
|
+
boolean updateAID(ContantPara.Operationoperation,
|
|
939
|
+
Declare:
|
|
940
|
+
Hashtable<String,String>aidParams)
|
|
941
|
+
UpdatetheAIDinfo.
|
|
942
|
+
Description:
|
|
943
|
+
modifyingtheAID infowithupdateAID command.
|
|
944
|
+
|
|
945
|
+
Hashtablekeys
|
|
946
|
+
• CardType: "IcCard"
|
|
947
|
+
• aid:Application Identifier (AID).
|
|
948
|
+
• appVersion:Application VersionNumber.
|
|
949
|
+
• contactTACDefault: IdentifytheAcquirer'sconditionsto
|
|
950
|
+
rejecttransactionswhen thetransactionis able tobecompleted
|
|
951
|
+
online but theterminal lackssuchcapability.
|
|
952
|
+
• contactTACDenial:IdentifytheAcquirer's conditionsfor not
|
|
953
|
+
tryinganyonline processingi.e. rejectionof transactions.
|
|
954
|
+
• contactTACOnline:IdentifytheAcquirer's conditionsfor
|
|
955
|
+
online transactions
|
|
956
|
+
• defaultTDOL:TransactionCertificateData ObjectList
|
|
957
|
+
(TDOL).
|
|
958
|
+
• defaultDDOL: DynamicDataAuthenticationDataObjectList
|
|
959
|
+
(DDOL). DDOLused forestablishmentof internalcertification
|
|
960
|
+
commandwhen thereis no DDOLin thecard.
|
|
961
|
+
• terminalFloorLimit: ContactTerminal Floor Limit. The
|
|
962
|
+
lowest offlinelimit allowed at theterminalin ICcardpurchase
|
|
963
|
+
•AppSelIndicator:application selectindicator 00-party
|
|
964
|
+
match,01-fullmatch,default 00
|
|
965
|
+
• AcquirerIdentifier:Acquirer Identifier.
|
|
966
|
+
Parameters: • TerminalCapabilities: terminal Capabilities 9F33
|
|
967
|
+
• terminalCountryCode:terminal countrycode9F1A
|
|
968
|
+
• ThresholdValue:Value used in terminal risk management for
|
|
969
|
+
random transaction selection. Present if the Combination
|
|
970
|
+
supportsRandom TransactionSelection (EMV Mode only)
|
|
971
|
+
Eg:"000000002000"
|
|
972
|
+
• TargetPercentage: Present if the Combination supports Random
|
|
973
|
+
TransactionSelection(EMVModeonly)
|
|
974
|
+
Eg:"00"
|
|
975
|
+
•MaxTargetPercentage:Value used in terminal risk management for
|
|
976
|
+
random transaction selection - present if the Combination supports
|
|
977
|
+
RandomTransactionSelection(EMVModeonly)
|
|
978
|
+
Eg:"00"
|
|
979
|
+
HashtableValues
|
|
980
|
+
• Datain hex stringformat.
|
|
981
|
+
Example:
|
|
982
|
+
b8Statuscheckingsupported
|
|
983
|
+
b7RFU
|
|
984
|
+
b6transactionlimitcheckingsupported
|
|
985
|
+
b5contactlessfloorlimitcheckingsupported
|
|
986
|
+
b4contactlesscvmlimitcheckingsupported
|
|
987
|
+
b3zeroamountcheckingsupported
|
|
988
|
+
b2zeroamountcheckingoption1supported
|
|
989
|
+
b1RFU
|
|
990
|
+
b8Statuscheckingsupported
|
|
991
|
+
b7RFU
|
|
992
|
+
b6transactionlimitcheckingsupported
|
|
993
|
+
b5contactlessfloorlimitcheckingsupported
|
|
994
|
+
b4contactlesscvmlimitcheckingsupported
|
|
995
|
+
b3zeroamountcheckingsupported
|
|
996
|
+
b2zeroamountcheckingoption1supported
|
|
997
|
+
b1RFU
|
|
998
|
+
b8Statuscheckingsupported
|
|
999
|
+
b7RFU
|
|
1000
|
+
b6transactionlimitcheckingsupported
|
|
1001
|
+
b5contactlessfloorlimitcheckingsupported
|
|
1002
|
+
b4contactlesscvmlimitcheckingsupported
|
|
1003
|
+
b3zeroamountcheckingsupported
|
|
1004
|
+
b2zeroamountcheckingoption1supported
|
|
1005
|
+
b1RFU
|
|
1006
|
+
|
|
1007
|
+
Return: True-updatesuccess False-updatefailed
|
|
1008
|
+
Remark:
|
|
1009
|
+
```
|
|
1010
|
+
|
|
1011
|
+
### EMV API / updateExceptFile
|
|
1012
|
+
|
|
1013
|
+
- Source section: `1.15`
|
|
1014
|
+
|
|
1015
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1016
|
+
|
|
1017
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1018
|
+
|
|
1019
|
+
|
|
1020
|
+
|
|
1021
|
+
Purpose:
|
|
1022
|
+
Updateblacklist tokernel
|
|
1023
|
+
Mode:0-Add
|
|
1024
|
+
1-Delete
|
|
1025
|
+
2-Modify
|
|
1026
|
+
|
|
1027
|
+
|
|
1028
|
+
Signature/prototype:
|
|
1029
|
+
```java
|
|
1030
|
+
boolean updateExceptFile(int mode,String ExceptTLV)
|
|
1031
|
+
```
|
|
1032
|
+
|
|
1033
|
+
|
|
1034
|
+
Parameters:
|
|
1035
|
+
3-Clear
|
|
1036
|
+
ExceptTLV:
|
|
1037
|
+
tag5A+tag5F34
|
|
1038
|
+
eg:5A0852364979362037965F340101
|
|
1039
|
+
|
|
1040
|
+
|
|
1041
|
+
Return value:
|
|
1042
|
+
None
|
|
1043
|
+
|
|
1044
|
+
|
|
1045
|
+
Usage notes:
|
|
1046
|
+
IfyouwantnotsupportExceptfilecheck,don`tupdateanyblacklist
|
|
1047
|
+
|
|
1048
|
+
|
|
1049
|
+
Source details:
|
|
1050
|
+
```text
|
|
1051
|
+
Declare: boolean updateExceptFile(int mode,String ExceptTLV)
|
|
1052
|
+
Description: Updateblacklist tokernel
|
|
1053
|
+
Mode:0-Add
|
|
1054
|
+
1-Delete
|
|
1055
|
+
2-Modify
|
|
1056
|
+
Parameters:
|
|
1057
|
+
3-Clear
|
|
1058
|
+
ExceptTLV:
|
|
1059
|
+
tag5A+tag5F34
|
|
1060
|
+
eg:5A0852364979362037965F340101
|
|
1061
|
+
Return: None
|
|
1062
|
+
Remark: IfyouwantnotsupportExceptfilecheck,don`tupdateanyblacklist
|
|
1063
|
+
```
|
|
1064
|
+
|
|
1065
|
+
### EMV API / LogOutEnable
|
|
1066
|
+
|
|
1067
|
+
- Source section: `1.16`
|
|
1068
|
+
|
|
1069
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1070
|
+
|
|
1071
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1072
|
+
|
|
1073
|
+
|
|
1074
|
+
|
|
1075
|
+
Purpose:
|
|
1076
|
+
Enableor disablecontact/contactlesstransactionlog
|
|
1077
|
+
0-disable
|
|
1078
|
+
|
|
1079
|
+
|
|
1080
|
+
Signature/prototype:
|
|
1081
|
+
```java
|
|
1082
|
+
voidLogOutEnable(int enable)
|
|
1083
|
+
```
|
|
1084
|
+
|
|
1085
|
+
|
|
1086
|
+
Parameters:
|
|
1087
|
+
1-enable
|
|
1088
|
+
|
|
1089
|
+
|
|
1090
|
+
Return value:
|
|
1091
|
+
None
|
|
1092
|
+
adbpull/sdcard/UROPE/Trace.txt….
|
|
1093
|
+
|
|
1094
|
+
|
|
1095
|
+
Usage notes:
|
|
1096
|
+
adbpull/sdcard/UROPE/TraceCL.txt….
|
|
1097
|
+
adbpull/sdcard/UROPE/ICCMD.log…
|
|
1098
|
+
|
|
1099
|
+
|
|
1100
|
+
Simplified example:
|
|
1101
|
+
```java
|
|
1102
|
+
emv.LogOutEnable(BuildConfig.DEBUG ? 1 : 0); // disable in production
|
|
1103
|
+
```
|
|
1104
|
+
|
|
1105
|
+
|
|
1106
|
+
Source details:
|
|
1107
|
+
```text
|
|
1108
|
+
Declare: voidLogOutEnable(int enable)
|
|
1109
|
+
Description: Enableor disablecontact/contactlesstransactionlog
|
|
1110
|
+
0-disable
|
|
1111
|
+
Parameters:
|
|
1112
|
+
1-enable
|
|
1113
|
+
Return: None
|
|
1114
|
+
adbpull/sdcard/UROPE/Trace.txt….
|
|
1115
|
+
Remark: adbpull/sdcard/UROPE/TraceCL.txt….
|
|
1116
|
+
adbpull/sdcard/UROPE/ICCMD.log…
|
|
1117
|
+
```
|
|
1118
|
+
|
|
1119
|
+
### EMV API / sendOfflinePINVerifyResult
|
|
1120
|
+
|
|
1121
|
+
- Source section: `1.17`
|
|
1122
|
+
|
|
1123
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1124
|
+
|
|
1125
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1126
|
+
|
|
1127
|
+
|
|
1128
|
+
|
|
1129
|
+
Purpose:
|
|
1130
|
+
Androdos 8.0,other versionnot use this,offlinepinverify
|
|
1131
|
+
bykernel)
|
|
1132
|
+
(-198) //Returncodeerror
|
|
1133
|
+
(-202) //ICcommand failed
|
|
1134
|
+
(-192) //PINBLOCKED
|
|
1135
|
+
|
|
1136
|
+
|
|
1137
|
+
Signature/prototype:
|
|
1138
|
+
```java
|
|
1139
|
+
boolean sendOfflinePINVerifyResult(int iResult)
|
|
1140
|
+
```
|
|
1141
|
+
|
|
1142
|
+
|
|
1143
|
+
Parameters:
|
|
1144
|
+
(-199) //user cancel or Pinpadtimeout
|
|
1145
|
+
(1) //bypass
|
|
1146
|
+
(0) //success
|
|
1147
|
+
|
|
1148
|
+
|
|
1149
|
+
Return value:
|
|
1150
|
+
0-success
|
|
1151
|
+
|
|
1152
|
+
|
|
1153
|
+
Usage notes:
|
|
1154
|
+
CallthisincallbackonRequestOfflinePINVerify
|
|
1155
|
+
|
|
1156
|
+
|
|
1157
|
+
Source details:
|
|
1158
|
+
```text
|
|
1159
|
+
Declare: boolean sendOfflinePINVerifyResult(int iResult)
|
|
1160
|
+
Sendoffline pinverifyresult tokernel(thisapi use in
|
|
1161
|
+
Description: Androdos 8.0,other versionnot use this,offlinepinverify
|
|
1162
|
+
bykernel)
|
|
1163
|
+
(-198) //Returncodeerror
|
|
1164
|
+
(-202) //ICcommand failed
|
|
1165
|
+
(-192) //PINBLOCKED
|
|
1166
|
+
Parameters:
|
|
1167
|
+
(-199) //user cancel or Pinpadtimeout
|
|
1168
|
+
(1) //bypass
|
|
1169
|
+
(0) //success
|
|
1170
|
+
Return: 0-success
|
|
1171
|
+
|
|
1172
|
+
Remark: CallthisincallbackonRequestOfflinePINVerify
|
|
1173
|
+
```
|
|
1174
|
+
|
|
1175
|
+
### EMV API / getIssuerScriptResult
|
|
1176
|
+
|
|
1177
|
+
- Source section: `1.18`
|
|
1178
|
+
|
|
1179
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1180
|
+
|
|
1181
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1182
|
+
|
|
1183
|
+
|
|
1184
|
+
|
|
1185
|
+
Purpose:
|
|
1186
|
+
GetScriptResult
|
|
1187
|
+
|
|
1188
|
+
|
|
1189
|
+
Signature/prototype:
|
|
1190
|
+
```java
|
|
1191
|
+
booleangetIssuerScriptResult()
|
|
1192
|
+
```
|
|
1193
|
+
|
|
1194
|
+
|
|
1195
|
+
Parameters:
|
|
1196
|
+
none
|
|
1197
|
+
|
|
1198
|
+
|
|
1199
|
+
Return value:
|
|
1200
|
+
0-getsuccessifsuccesswillcallbackonReturnIssuerScriptResult
|
|
1201
|
+
|
|
1202
|
+
|
|
1203
|
+
Usage notes:
|
|
1204
|
+
CallthisincallbackonReturnIssuerScriptResult
|
|
1205
|
+
|
|
1206
|
+
|
|
1207
|
+
Source details:
|
|
1208
|
+
```text
|
|
1209
|
+
Declare: booleangetIssuerScriptResult()
|
|
1210
|
+
Description: GetScriptResult
|
|
1211
|
+
Parameters: none
|
|
1212
|
+
Return: 0-getsuccessifsuccesswillcallbackonReturnIssuerScriptResult
|
|
1213
|
+
Remark: CallthisincallbackonReturnIssuerScriptResult
|
|
1214
|
+
```
|
|
1215
|
+
|
|
1216
|
+
### EMV API / getEmvAIDDetail
|
|
1217
|
+
|
|
1218
|
+
- Source section: `1.19`
|
|
1219
|
+
|
|
1220
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1221
|
+
|
|
1222
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1223
|
+
|
|
1224
|
+
|
|
1225
|
+
|
|
1226
|
+
Purpose:
|
|
1227
|
+
Declare: public List<EmvAidData> getEmvAIDDetail()
|
|
1228
|
+
|
|
1229
|
+
|
|
1230
|
+
Signature/prototype:
|
|
1231
|
+
```java
|
|
1232
|
+
public List<EmvAidData> getEmvAIDDetail()
|
|
1233
|
+
```
|
|
1234
|
+
|
|
1235
|
+
|
|
1236
|
+
Parameters:
|
|
1237
|
+
none
|
|
1238
|
+
|
|
1239
|
+
|
|
1240
|
+
Usage notes:
|
|
1241
|
+
Donotcallduringthetransaction
|
|
1242
|
+
|
|
1243
|
+
|
|
1244
|
+
Source details:
|
|
1245
|
+
```text
|
|
1246
|
+
Declare: public List<EmvAidData> getEmvAIDDetail()
|
|
1247
|
+
ReturnallAidparamters,seetheEmvAidData.class
|
|
1248
|
+
Description:
|
|
1249
|
+
Parameters: none
|
|
1250
|
+
Return:
|
|
1251
|
+
Remark: Donotcallduringthetransaction
|
|
1252
|
+
```
|
|
1253
|
+
|
|
1254
|
+
### EMV API / getNfcAIDDetail
|
|
1255
|
+
|
|
1256
|
+
- Source section: `1.20`
|
|
1257
|
+
|
|
1258
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1259
|
+
|
|
1260
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1261
|
+
|
|
1262
|
+
|
|
1263
|
+
|
|
1264
|
+
Purpose:
|
|
1265
|
+
Declare: public List<ContactlessAidData> getNfcAIDDetail()
|
|
1266
|
+
|
|
1267
|
+
|
|
1268
|
+
Signature/prototype:
|
|
1269
|
+
```java
|
|
1270
|
+
public List<ContactlessAidData> getNfcAIDDetail()
|
|
1271
|
+
```
|
|
1272
|
+
|
|
1273
|
+
|
|
1274
|
+
Parameters:
|
|
1275
|
+
none
|
|
1276
|
+
|
|
1277
|
+
|
|
1278
|
+
Usage notes:
|
|
1279
|
+
Donotcallduringthetransaction
|
|
1280
|
+
|
|
1281
|
+
|
|
1282
|
+
Source details:
|
|
1283
|
+
```text
|
|
1284
|
+
Declare: public List<ContactlessAidData> getNfcAIDDetail()
|
|
1285
|
+
ReturnallAidparamters,seetheContactlessAidData.class
|
|
1286
|
+
Description:
|
|
1287
|
+
Parameters: none
|
|
1288
|
+
Return:
|
|
1289
|
+
Remark: Donotcallduringthetransaction
|
|
1290
|
+
```
|
|
1291
|
+
|
|
1292
|
+
### EMV API / getCAPKDetail
|
|
1293
|
+
|
|
1294
|
+
- Source section: `1.21`
|
|
1295
|
+
|
|
1296
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1297
|
+
|
|
1298
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1299
|
+
|
|
1300
|
+
|
|
1301
|
+
|
|
1302
|
+
Purpose:
|
|
1303
|
+
public List<CAPK> getCAPKDetail(ContantPara.CardSlot
|
|
1304
|
+
|
|
1305
|
+
|
|
1306
|
+
Signature/prototype:
|
|
1307
|
+
```java
|
|
1308
|
+
cardSlot)
|
|
1309
|
+
```
|
|
1310
|
+
|
|
1311
|
+
|
|
1312
|
+
Parameters:
|
|
1313
|
+
none
|
|
1314
|
+
|
|
1315
|
+
|
|
1316
|
+
Usage notes:
|
|
1317
|
+
Donotcallduringthetransaction
|
|
1318
|
+
|
|
1319
|
+
|
|
1320
|
+
Source details:
|
|
1321
|
+
```text
|
|
1322
|
+
public List<CAPK> getCAPKDetail(ContantPara.CardSlot
|
|
1323
|
+
Declare:
|
|
1324
|
+
cardSlot)
|
|
1325
|
+
ReturnallCAPKparamters,seetheCAPK.class
|
|
1326
|
+
Description:
|
|
1327
|
+
Parameters: none
|
|
1328
|
+
Return:
|
|
1329
|
+
Remark: Donotcallduringthetransaction
|
|
1330
|
+
```
|
|
1331
|
+
|
|
1332
|
+
### EMV API / getAIDList
|
|
1333
|
+
|
|
1334
|
+
- Source section: `1.22`
|
|
1335
|
+
|
|
1336
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1337
|
+
|
|
1338
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1339
|
+
|
|
1340
|
+
|
|
1341
|
+
|
|
1342
|
+
Purpose:
|
|
1343
|
+
Declare: public List<String> getAIDList(ContantPara.CardSlot cardSlot)
|
|
1344
|
+
|
|
1345
|
+
|
|
1346
|
+
Signature/prototype:
|
|
1347
|
+
```java
|
|
1348
|
+
public List<String> getAIDList(ContantPara.CardSlot cardSlot)
|
|
1349
|
+
```
|
|
1350
|
+
|
|
1351
|
+
|
|
1352
|
+
Parameters:
|
|
1353
|
+
none
|
|
1354
|
+
|
|
1355
|
+
|
|
1356
|
+
Usage notes:
|
|
1357
|
+
Donotcallduringthetransaction
|
|
1358
|
+
|
|
1359
|
+
|
|
1360
|
+
Source details:
|
|
1361
|
+
```text
|
|
1362
|
+
Declare: public List<String> getAIDList(ContantPara.CardSlot cardSlot)
|
|
1363
|
+
ReturnallAID
|
|
1364
|
+
Description:
|
|
1365
|
+
Parameters: none
|
|
1366
|
+
Return:
|
|
1367
|
+
Remark: Donotcallduringthetransaction
|
|
1368
|
+
```
|
|
1369
|
+
|
|
1370
|
+
### EMV API / getCAPKList
|
|
1371
|
+
|
|
1372
|
+
- Source section: `1.23`
|
|
1373
|
+
|
|
1374
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1375
|
+
|
|
1376
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1377
|
+
|
|
1378
|
+
|
|
1379
|
+
|
|
1380
|
+
Purpose:
|
|
1381
|
+
Key: RID
|
|
1382
|
+
|
|
1383
|
+
|
|
1384
|
+
Signature/prototype:
|
|
1385
|
+
```java
|
|
1386
|
+
getCAPKList(ContantPara.CardSlot cardSlot)
|
|
1387
|
+
```
|
|
1388
|
+
|
|
1389
|
+
|
|
1390
|
+
Parameters:
|
|
1391
|
+
Index
|
|
1392
|
+
|
|
1393
|
+
|
|
1394
|
+
Return value:
|
|
1395
|
+
List
|
|
1396
|
+
|
|
1397
|
+
|
|
1398
|
+
Usage notes:
|
|
1399
|
+
Donotcallduringthetransaction
|
|
1400
|
+
|
|
1401
|
+
|
|
1402
|
+
Source details:
|
|
1403
|
+
```text
|
|
1404
|
+
public List<Hashtable<String,String>>
|
|
1405
|
+
Declare:
|
|
1406
|
+
getCAPKList(ContantPara.CardSlot cardSlot)
|
|
1407
|
+
ReturnallCAPK
|
|
1408
|
+
Description:
|
|
1409
|
+
Key: RID
|
|
1410
|
+
Parameters:
|
|
1411
|
+
Index
|
|
1412
|
+
Return: List
|
|
1413
|
+
Remark: Donotcallduringthetransaction
|
|
1414
|
+
```
|
|
1415
|
+
|
|
1416
|
+
### EMV API / getTlvByTagLists
|
|
1417
|
+
|
|
1418
|
+
- Source section: `1.24`
|
|
1419
|
+
|
|
1420
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1421
|
+
|
|
1422
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1423
|
+
|
|
1424
|
+
|
|
1425
|
+
|
|
1426
|
+
Purpose:
|
|
1427
|
+
GettheTLVstring basedontag
|
|
1428
|
+
|
|
1429
|
+
|
|
1430
|
+
Signature/prototype:
|
|
1431
|
+
```java
|
|
1432
|
+
public String getTlvByTagLists(List<String>TagList)
|
|
1433
|
+
```
|
|
1434
|
+
|
|
1435
|
+
|
|
1436
|
+
Parameters:
|
|
1437
|
+
TagList:All tags
|
|
1438
|
+
|
|
1439
|
+
|
|
1440
|
+
Return value:
|
|
1441
|
+
TLVdatastring
|
|
1442
|
+
|
|
1443
|
+
|
|
1444
|
+
Usage notes:
|
|
1445
|
+
none
|
|
1446
|
+
|
|
1447
|
+
|
|
1448
|
+
Source details:
|
|
1449
|
+
```text
|
|
1450
|
+
Declare: public String getTlvByTagLists(List<String>TagList)
|
|
1451
|
+
Description: GettheTLVstring basedontag
|
|
1452
|
+
Parameters: TagList:All tags
|
|
1453
|
+
Return: TLVdatastring
|
|
1454
|
+
Remark: none
|
|
1455
|
+
```
|
|
1456
|
+
|
|
1457
|
+
### EMV API / getEMVLibVers
|
|
1458
|
+
|
|
1459
|
+
- Source section: `1.25`
|
|
1460
|
+
|
|
1461
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1462
|
+
|
|
1463
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1464
|
+
|
|
1465
|
+
|
|
1466
|
+
|
|
1467
|
+
Purpose:
|
|
1468
|
+
Getemvso version
|
|
1469
|
+
|
|
1470
|
+
|
|
1471
|
+
Signature/prototype:
|
|
1472
|
+
```java
|
|
1473
|
+
public String getEMVLibVers(ContantPara.CardSlot cardSlot)
|
|
1474
|
+
```
|
|
1475
|
+
|
|
1476
|
+
|
|
1477
|
+
Parameters:
|
|
1478
|
+
none
|
|
1479
|
+
|
|
1480
|
+
|
|
1481
|
+
Return value:
|
|
1482
|
+
Versionstring
|
|
1483
|
+
|
|
1484
|
+
|
|
1485
|
+
Usage notes:
|
|
1486
|
+
none
|
|
1487
|
+
|
|
1488
|
+
|
|
1489
|
+
Source details:
|
|
1490
|
+
```text
|
|
1491
|
+
Declare: public String getEMVLibVers(ContantPara.CardSlot cardSlot)
|
|
1492
|
+
Description: Getemvso version
|
|
1493
|
+
Parameters: none
|
|
1494
|
+
Return: Versionstring
|
|
1495
|
+
Remark: none
|
|
1496
|
+
```
|
|
1497
|
+
|
|
1498
|
+
### EMV API / getEMVjarVers
|
|
1499
|
+
|
|
1500
|
+
- Source section: `1.26`
|
|
1501
|
+
|
|
1502
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1503
|
+
|
|
1504
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1505
|
+
|
|
1506
|
+
|
|
1507
|
+
|
|
1508
|
+
Purpose:
|
|
1509
|
+
Getemvjar version
|
|
1510
|
+
|
|
1511
|
+
|
|
1512
|
+
Signature/prototype:
|
|
1513
|
+
```java
|
|
1514
|
+
public String getEMVjarVers()
|
|
1515
|
+
```
|
|
1516
|
+
|
|
1517
|
+
|
|
1518
|
+
Parameters:
|
|
1519
|
+
none
|
|
1520
|
+
|
|
1521
|
+
|
|
1522
|
+
Return value:
|
|
1523
|
+
Versionstring
|
|
1524
|
+
|
|
1525
|
+
|
|
1526
|
+
Usage notes:
|
|
1527
|
+
none
|
|
1528
|
+
|
|
1529
|
+
|
|
1530
|
+
Source details:
|
|
1531
|
+
```text
|
|
1532
|
+
Declare: public String getEMVjarVers()
|
|
1533
|
+
Description: Getemvjar version
|
|
1534
|
+
Parameters: none
|
|
1535
|
+
Return: Versionstring
|
|
1536
|
+
Remark: none
|
|
1537
|
+
```
|
|
1538
|
+
|
|
1539
|
+
### EMV API / getValByTag
|
|
1540
|
+
|
|
1541
|
+
- Source section: `1.27`
|
|
1542
|
+
|
|
1543
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1544
|
+
|
|
1545
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1546
|
+
|
|
1547
|
+
|
|
1548
|
+
|
|
1549
|
+
Purpose:
|
|
1550
|
+
Get onecontactor contactlesstagvalue
|
|
1551
|
+
|
|
1552
|
+
|
|
1553
|
+
Signature/prototype:
|
|
1554
|
+
```java
|
|
1555
|
+
public String getValByTag(int tag)
|
|
1556
|
+
```
|
|
1557
|
+
|
|
1558
|
+
|
|
1559
|
+
Parameters:
|
|
1560
|
+
tag(e.g. 0x57)
|
|
1561
|
+
|
|
1562
|
+
|
|
1563
|
+
Return value:
|
|
1564
|
+
Returntagvaluewithstring
|
|
1565
|
+
|
|
1566
|
+
|
|
1567
|
+
Usage notes:
|
|
1568
|
+
none
|
|
1569
|
+
|
|
1570
|
+
|
|
1571
|
+
Simplified example:
|
|
1572
|
+
```java
|
|
1573
|
+
String aid = emv.getValByTag(0x84);
|
|
1574
|
+
```
|
|
1575
|
+
|
|
1576
|
+
|
|
1577
|
+
Source details:
|
|
1578
|
+
```text
|
|
1579
|
+
Declare: public String getValByTag(int tag)
|
|
1580
|
+
Description: Get onecontactor contactlesstagvalue
|
|
1581
|
+
Parameters: tag(e.g. 0x57)
|
|
1582
|
+
Return: Returntagvaluewithstring
|
|
1583
|
+
Remark: none
|
|
1584
|
+
```
|
|
1585
|
+
|
|
1586
|
+
### EMV API / setContext
|
|
1587
|
+
|
|
1588
|
+
- Source section: `1.28`
|
|
1589
|
+
|
|
1590
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1591
|
+
|
|
1592
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1593
|
+
|
|
1594
|
+
|
|
1595
|
+
|
|
1596
|
+
Purpose:
|
|
1597
|
+
Setcontext,soemvcancallUIandpinpadhandleoffliepin
|
|
1598
|
+
|
|
1599
|
+
|
|
1600
|
+
Signature/prototype:
|
|
1601
|
+
```java
|
|
1602
|
+
public void setContext(Context context)
|
|
1603
|
+
```
|
|
1604
|
+
|
|
1605
|
+
|
|
1606
|
+
Usage notes:
|
|
1607
|
+
Useinandroid5.1or6.0
|
|
1608
|
+
|
|
1609
|
+
|
|
1610
|
+
Simplified example:
|
|
1611
|
+
```java
|
|
1612
|
+
EmvNfcKernelApi emv = EmvNfcKernelApi.getInstance(context);
|
|
1613
|
+
emv.setContext(context);
|
|
1614
|
+
emv.setListener(listener);
|
|
1615
|
+
```
|
|
1616
|
+
|
|
1617
|
+
|
|
1618
|
+
Source details:
|
|
1619
|
+
```text
|
|
1620
|
+
Declare: public void setContext(Context context)
|
|
1621
|
+
Description: Setcontext,soemvcancallUIandpinpadhandleoffliepin
|
|
1622
|
+
Parameters:
|
|
1623
|
+
Return:
|
|
1624
|
+
Remark: Useinandroid5.1or6.0
|
|
1625
|
+
```
|
|
1626
|
+
|
|
1627
|
+
### EMV API / SetTLV
|
|
1628
|
+
|
|
1629
|
+
- Source section: `1.29`
|
|
1630
|
+
|
|
1631
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1632
|
+
|
|
1633
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1634
|
+
|
|
1635
|
+
|
|
1636
|
+
|
|
1637
|
+
Purpose:
|
|
1638
|
+
Set onecontacttagdata
|
|
1639
|
+
tag(e.g. 0x95)
|
|
1640
|
+
|
|
1641
|
+
|
|
1642
|
+
Signature/prototype:
|
|
1643
|
+
```java
|
|
1644
|
+
public int SetTLV(int tag,byte[]value, int valueLen)
|
|
1645
|
+
```
|
|
1646
|
+
|
|
1647
|
+
|
|
1648
|
+
Parameters:
|
|
1649
|
+
value: tagvalue hex
|
|
1650
|
+
valueLen:lengthofvalue
|
|
1651
|
+
0:success
|
|
1652
|
+
|
|
1653
|
+
|
|
1654
|
+
Return value:
|
|
1655
|
+
Other:failed
|
|
1656
|
+
|
|
1657
|
+
|
|
1658
|
+
Usage notes:
|
|
1659
|
+
Onlyusefor contact
|
|
1660
|
+
|
|
1661
|
+
|
|
1662
|
+
Source details:
|
|
1663
|
+
```text
|
|
1664
|
+
Declare: public int SetTLV(int tag,byte[]value, int valueLen)
|
|
1665
|
+
Description: Set onecontacttagdata
|
|
1666
|
+
tag(e.g. 0x95)
|
|
1667
|
+
Parameters: value: tagvalue hex
|
|
1668
|
+
valueLen:lengthofvalue
|
|
1669
|
+
0:success
|
|
1670
|
+
Return:
|
|
1671
|
+
Other:failed
|
|
1672
|
+
Remark: Onlyusefor contact
|
|
1673
|
+
```
|
|
1674
|
+
|
|
1675
|
+
### EMV API / getMstripFlag
|
|
1676
|
+
|
|
1677
|
+
- Source section: `1.30`
|
|
1678
|
+
|
|
1679
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1680
|
+
|
|
1681
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1682
|
+
|
|
1683
|
+
|
|
1684
|
+
|
|
1685
|
+
Purpose:
|
|
1686
|
+
Note:VISAnotsupportMstripmode
|
|
1687
|
+
|
|
1688
|
+
|
|
1689
|
+
Signature/prototype:
|
|
1690
|
+
```java
|
|
1691
|
+
public int getMstripFlag ()
|
|
1692
|
+
```
|
|
1693
|
+
|
|
1694
|
+
|
|
1695
|
+
Parameters:
|
|
1696
|
+
0 Mchip(EMVmode)
|
|
1697
|
+
|
|
1698
|
+
|
|
1699
|
+
Return value:
|
|
1700
|
+
1 Mstrip(Master/Amex)
|
|
1701
|
+
4 JCBlegacymode
|
|
1702
|
+
|
|
1703
|
+
|
|
1704
|
+
Usage notes:
|
|
1705
|
+
8 DiscoverZIPmode
|
|
1706
|
+
|
|
1707
|
+
|
|
1708
|
+
Source details:
|
|
1709
|
+
```text
|
|
1710
|
+
Declare: public int getMstripFlag ()
|
|
1711
|
+
CheckthecontactlesscardisEMVmodeorMagstripmode
|
|
1712
|
+
Description:
|
|
1713
|
+
Note:VISAnotsupportMstripmode
|
|
1714
|
+
Parameters:
|
|
1715
|
+
0 Mchip(EMVmode)
|
|
1716
|
+
Return:
|
|
1717
|
+
1 Mstrip(Master/Amex)
|
|
1718
|
+
4 JCBlegacymode
|
|
1719
|
+
Remark:
|
|
1720
|
+
8 DiscoverZIPmode
|
|
1721
|
+
```
|
|
1722
|
+
|
|
1723
|
+
### EMV API / CheckCardIsOut
|
|
1724
|
+
|
|
1725
|
+
- Source section: `1.31`
|
|
1726
|
+
|
|
1727
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1728
|
+
|
|
1729
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1730
|
+
|
|
1731
|
+
|
|
1732
|
+
|
|
1733
|
+
Purpose:
|
|
1734
|
+
transaction ,Otherwise,itwillcauseakernelcardreadingconflict,
|
|
1735
|
+
|
|
1736
|
+
|
|
1737
|
+
Signature/prototype:
|
|
1738
|
+
```java
|
|
1739
|
+
public boolean CheckCardIsOut(long ms)
|
|
1740
|
+
```
|
|
1741
|
+
|
|
1742
|
+
|
|
1743
|
+
Parameters:
|
|
1744
|
+
milliseconds
|
|
1745
|
+
|
|
1746
|
+
|
|
1747
|
+
Return value:
|
|
1748
|
+
True:ifcardisremovedduringtimeout False:cardnotremoved
|
|
1749
|
+
call it at ContantPara.CheckCardResult.NEED_FALLBACK or
|
|
1750
|
+
|
|
1751
|
+
|
|
1752
|
+
Usage notes:
|
|
1753
|
+
ContantPara.CheckCardResult.NOT_ICC or
|
|
1754
|
+
ContantPara.TransactionResult.ICC_CARD_REMOVED
|
|
1755
|
+
|
|
1756
|
+
|
|
1757
|
+
Source details:
|
|
1758
|
+
```text
|
|
1759
|
+
Declare: public boolean CheckCardIsOut(long ms)
|
|
1760
|
+
Check IC card is removed from device , but this api can`t call during
|
|
1761
|
+
Description:
|
|
1762
|
+
transaction ,Otherwise,itwillcauseakernelcardreadingconflict,
|
|
1763
|
+
Parameters: milliseconds
|
|
1764
|
+
Return: True:ifcardisremovedduringtimeout False:cardnotremoved
|
|
1765
|
+
call it at ContantPara.CheckCardResult.NEED_FALLBACK or
|
|
1766
|
+
Remark: ContantPara.CheckCardResult.NOT_ICC or
|
|
1767
|
+
ContantPara.TransactionResult.ICC_CARD_REMOVED
|
|
1768
|
+
```
|
|
1769
|
+
|
|
1770
|
+
### EMV API / CheckCardIsOutDuringTrans
|
|
1771
|
+
|
|
1772
|
+
- Source section: `1.32`
|
|
1773
|
+
|
|
1774
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1775
|
+
|
|
1776
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1777
|
+
|
|
1778
|
+
|
|
1779
|
+
|
|
1780
|
+
Purpose:
|
|
1781
|
+
thePINpad forcontacttransaction ,Otherwise,itwill causeakernel
|
|
1782
|
+
cardreadingconflict
|
|
1783
|
+
|
|
1784
|
+
|
|
1785
|
+
Signature/prototype:
|
|
1786
|
+
```java
|
|
1787
|
+
public boolean CheckCardIsOutDuringTrans(long ms)
|
|
1788
|
+
```
|
|
1789
|
+
|
|
1790
|
+
|
|
1791
|
+
Parameters:
|
|
1792
|
+
milliseconds
|
|
1793
|
+
|
|
1794
|
+
|
|
1795
|
+
Return value:
|
|
1796
|
+
True:ifcardisremovedduringtimeout False:cardnotremoved
|
|
1797
|
+
|
|
1798
|
+
|
|
1799
|
+
Usage notes:
|
|
1800
|
+
UseininputPINflow,whenthecardremoved
|
|
1801
|
+
|
|
1802
|
+
|
|
1803
|
+
Source details:
|
|
1804
|
+
```text
|
|
1805
|
+
Declare: public boolean CheckCardIsOutDuringTrans(long ms)
|
|
1806
|
+
Check IC card is removed from device , this api can only call during Pop
|
|
1807
|
+
Description: thePINpad forcontacttransaction ,Otherwise,itwill causeakernel
|
|
1808
|
+
cardreadingconflict
|
|
1809
|
+
Parameters: milliseconds
|
|
1810
|
+
Return: True:ifcardisremovedduringtimeout False:cardnotremoved
|
|
1811
|
+
Remark: UseininputPINflow,whenthecardremoved
|
|
1812
|
+
```
|
|
1813
|
+
|
|
1814
|
+
### EMV API / GetField55ForSAMA
|
|
1815
|
+
|
|
1816
|
+
- Source section: `1.33`
|
|
1817
|
+
|
|
1818
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1819
|
+
|
|
1820
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1821
|
+
|
|
1822
|
+
|
|
1823
|
+
|
|
1824
|
+
Purpose:
|
|
1825
|
+
Getfiled55forSAMA
|
|
1826
|
+
|
|
1827
|
+
|
|
1828
|
+
Signature/prototype:
|
|
1829
|
+
```java
|
|
1830
|
+
public String GetField55ForSAMA()
|
|
1831
|
+
```
|
|
1832
|
+
|
|
1833
|
+
|
|
1834
|
+
Parameters:
|
|
1835
|
+
null
|
|
1836
|
+
|
|
1837
|
+
|
|
1838
|
+
Return value:
|
|
1839
|
+
TLV
|
|
1840
|
+
|
|
1841
|
+
|
|
1842
|
+
Usage notes:
|
|
1843
|
+
Callitatgoonlinecallback
|
|
1844
|
+
|
|
1845
|
+
|
|
1846
|
+
Source details:
|
|
1847
|
+
```text
|
|
1848
|
+
Declare: public String GetField55ForSAMA()
|
|
1849
|
+
Description: Getfiled55forSAMA
|
|
1850
|
+
Parameters: null
|
|
1851
|
+
Return: TLV
|
|
1852
|
+
Remark: Callitatgoonlinecallback
|
|
1853
|
+
```
|
|
1854
|
+
|
|
1855
|
+
### EMV API / getDeviceType()
|
|
1856
|
+
|
|
1857
|
+
- Source section: `1.34`
|
|
1858
|
+
|
|
1859
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1860
|
+
|
|
1861
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1862
|
+
|
|
1863
|
+
|
|
1864
|
+
|
|
1865
|
+
Purpose:
|
|
1866
|
+
GetDeviceTypeforContactless
|
|
1867
|
+
|
|
1868
|
+
|
|
1869
|
+
Signature/prototype:
|
|
1870
|
+
```java
|
|
1871
|
+
public int getDeviceType()
|
|
1872
|
+
```
|
|
1873
|
+
|
|
1874
|
+
|
|
1875
|
+
Parameters:
|
|
1876
|
+
null
|
|
1877
|
+
|
|
1878
|
+
|
|
1879
|
+
Return value:
|
|
1880
|
+
0-Realcard, other-MobilePhone
|
|
1881
|
+
Call it at go online callback, If the kernel cannot determine, the default
|
|
1882
|
+
|
|
1883
|
+
|
|
1884
|
+
Usage notes:
|
|
1885
|
+
realcard
|
|
1886
|
+
|
|
1887
|
+
|
|
1888
|
+
Source details:
|
|
1889
|
+
```text
|
|
1890
|
+
Declare: public int getDeviceType()
|
|
1891
|
+
Description: GetDeviceTypeforContactless
|
|
1892
|
+
Parameters: null
|
|
1893
|
+
Return: 0-Realcard, other-MobilePhone
|
|
1894
|
+
Call it at go online callback, If the kernel cannot determine, the default
|
|
1895
|
+
Remark:
|
|
1896
|
+
realcard
|
|
1897
|
+
```
|
|
1898
|
+
|
|
1899
|
+
### EMV API / getField55ForJIO()
|
|
1900
|
+
|
|
1901
|
+
- Source section: `1.34`
|
|
1902
|
+
|
|
1903
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1904
|
+
|
|
1905
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1906
|
+
|
|
1907
|
+
|
|
1908
|
+
|
|
1909
|
+
Purpose:
|
|
1910
|
+
Getfiled55forRelience
|
|
1911
|
+
|
|
1912
|
+
|
|
1913
|
+
Signature/prototype:
|
|
1914
|
+
```java
|
|
1915
|
+
public Hashtable<String,String> getField55ForJIO(int KeySetNum)
|
|
1916
|
+
```
|
|
1917
|
+
|
|
1918
|
+
|
|
1919
|
+
Parameters:
|
|
1920
|
+
KeySetNum--DUKPTKeySetNum
|
|
1921
|
+
|
|
1922
|
+
|
|
1923
|
+
Return value:
|
|
1924
|
+
Hashtable: KEY/VALUE:EMVDATA KSN TRACKDATA
|
|
1925
|
+
|
|
1926
|
+
|
|
1927
|
+
Usage notes:
|
|
1928
|
+
Callitatgoonlinecallback
|
|
1929
|
+
|
|
1930
|
+
|
|
1931
|
+
Source details:
|
|
1932
|
+
```text
|
|
1933
|
+
Declare: public Hashtable<String,String> getField55ForJIO(int KeySetNum)
|
|
1934
|
+
Description: Getfiled55forRelience
|
|
1935
|
+
Parameters: KeySetNum--DUKPTKeySetNum
|
|
1936
|
+
Return: Hashtable: KEY/VALUE:EMVDATA KSN TRACKDATA
|
|
1937
|
+
Remark: Callitatgoonlinecallback
|
|
1938
|
+
```
|
|
1939
|
+
|
|
1940
|
+
### EMV API / GetL1Version
|
|
1941
|
+
|
|
1942
|
+
- Source section: `1.35`
|
|
1943
|
+
|
|
1944
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1945
|
+
|
|
1946
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1947
|
+
|
|
1948
|
+
|
|
1949
|
+
|
|
1950
|
+
Purpose:
|
|
1951
|
+
GetL1Versionofdevice
|
|
1952
|
+
|
|
1953
|
+
|
|
1954
|
+
Signature/prototype:
|
|
1955
|
+
```java
|
|
1956
|
+
cardSlot)
|
|
1957
|
+
```
|
|
1958
|
+
|
|
1959
|
+
|
|
1960
|
+
Parameters:
|
|
1961
|
+
cardSlot-ICCorPICC
|
|
1962
|
+
|
|
1963
|
+
|
|
1964
|
+
Return value:
|
|
1965
|
+
Hashtable: KEY/VALUE:IFMHardwareSoftwarePCD
|
|
1966
|
+
|
|
1967
|
+
|
|
1968
|
+
Usage notes:
|
|
1969
|
+
SubjecttotheL1certificate
|
|
1970
|
+
|
|
1971
|
+
|
|
1972
|
+
Source details:
|
|
1973
|
+
```text
|
|
1974
|
+
public Hashtable<String,String> GetL1Version(ContantPara.CardSlot
|
|
1975
|
+
Declare:
|
|
1976
|
+
cardSlot)
|
|
1977
|
+
Description: GetL1Versionofdevice
|
|
1978
|
+
Parameters: cardSlot-ICCorPICC
|
|
1979
|
+
Return: Hashtable: KEY/VALUE:IFMHardwareSoftwarePCD
|
|
1980
|
+
Remark: SubjecttotheL1certificate
|
|
1981
|
+
```
|
|
1982
|
+
|
|
1983
|
+
### EMV API / getNFCLibVers
|
|
1984
|
+
|
|
1985
|
+
- Source section: `1.36`
|
|
1986
|
+
|
|
1987
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
1988
|
+
|
|
1989
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
1990
|
+
|
|
1991
|
+
|
|
1992
|
+
|
|
1993
|
+
Purpose:
|
|
1994
|
+
GetKernelnameandVersion
|
|
1995
|
+
KernelID - 02-Master 03-Visa 04-Amex 05-JCB 06-Discover 0D-Rupay
|
|
1996
|
+
|
|
1997
|
+
|
|
1998
|
+
Signature/prototype:
|
|
1999
|
+
```java
|
|
2000
|
+
public String getNFCLibVers(byteKernelID)
|
|
2001
|
+
```
|
|
2002
|
+
|
|
2003
|
+
|
|
2004
|
+
Parameters:
|
|
2005
|
+
2D-PURE
|
|
2006
|
+
|
|
2007
|
+
|
|
2008
|
+
Return value:
|
|
2009
|
+
NameandVersion
|
|
2010
|
+
|
|
2011
|
+
|
|
2012
|
+
Usage notes:
|
|
2013
|
+
SubjecttotheL2certificate
|
|
2014
|
+
|
|
2015
|
+
|
|
2016
|
+
Source details:
|
|
2017
|
+
```text
|
|
2018
|
+
Declare: public String getNFCLibVers(byteKernelID)
|
|
2019
|
+
Description: GetKernelnameandVersion
|
|
2020
|
+
KernelID - 02-Master 03-Visa 04-Amex 05-JCB 06-Discover 0D-Rupay
|
|
2021
|
+
Parameters:
|
|
2022
|
+
2D-PURE
|
|
2023
|
+
Return: NameandVersion
|
|
2024
|
+
Remark: SubjecttotheL2certificate
|
|
2025
|
+
```
|
|
2026
|
+
|
|
2027
|
+
### EMV API / updateCAPK
|
|
2028
|
+
|
|
2029
|
+
- Source section: `1.37`
|
|
2030
|
+
|
|
2031
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
2032
|
+
|
|
2033
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java and UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/TestEmv.java`
|
|
2034
|
+
|
|
2035
|
+
|
|
2036
|
+
|
|
2037
|
+
Purpose:
|
|
2038
|
+
UpdateaCertificateAuthorityPublic Key objectin thedevice.
|
|
2039
|
+
TheCAPKobjecttobeupdated.Theobjectcontainsthelocation
|
|
2040
|
+
oftheCAPK in thedevice, theRID, index, modulus,exponent
|
|
2041
|
+
andthechecksumof theCAPK, all
|
|
2042
|
+
datainhex stringformat.
|
|
2043
|
+
cardSlot:
|
|
2044
|
+
ContantPara.CardSlot.ICC,ContantPara.CardSlot.PICCor
|
|
2045
|
+
ContantPara.CardSlot.UNKNOWN
|
|
2046
|
+
Rid:Identify public keyof certification center
|
|
2047
|
+
Index:Identifypublic keyofcertificationcentertogetherwithRID
|
|
2048
|
+
Exponent: Public keyexponent
|
|
2049
|
+
|
|
2050
|
+
|
|
2051
|
+
Signature/prototype:
|
|
2052
|
+
```java
|
|
2053
|
+
ContantPara.Operationoperation, Hashtable<String,String>
|
|
2054
|
+
capkParams)
|
|
2055
|
+
```
|
|
2056
|
+
|
|
2057
|
+
|
|
2058
|
+
Parameters:
|
|
2059
|
+
Modulus:Module value of public key
|
|
2060
|
+
Checksum:Toverifypublic keyof certificationcenter
|
|
2061
|
+
Toremove aCAPK entry at thespecifiedlocation, set withthe
|
|
2062
|
+
following values:
|
|
2063
|
+
• RID (5bytes) = "A000000004"
|
|
2064
|
+
• Index(1byte) = "01"
|
|
2065
|
+
• Exponent (1byte or 3bytes) = "03"
|
|
2066
|
+
• Modulus (Nbytes) ="00"
|
|
2067
|
+
• Size (2bytes) (not use)
|
|
2068
|
+
• Checksum (20bytes) = SHA-1[RID|| Index|| Modulus ||
|
|
2069
|
+
Exponent]
|
|
2070
|
+
|
|
2071
|
+
|
|
2072
|
+
Return value:
|
|
2073
|
+
True-updatesuccess False-updatefailed
|
|
2074
|
+
|
|
2075
|
+
|
|
2076
|
+
Usage notes:
|
|
2077
|
+
Mandatory: RID&Index&Exponent&Modulus
|
|
2078
|
+
|
|
2079
|
+
|
|
2080
|
+
Simplified example:
|
|
2081
|
+
```java
|
|
2082
|
+
Hashtable<String, String> capk = new Hashtable<>();
|
|
2083
|
+
capk.put("RID", "A000000003");
|
|
2084
|
+
capk.put("Index", "08");
|
|
2085
|
+
capk.put("Exponent", "03");
|
|
2086
|
+
capk.put("Modulus", "...");
|
|
2087
|
+
capk.put("Checksum", "...");
|
|
2088
|
+
boolean ok = emv.updateCAPK(ContantPara.Operation.ADD, capk);
|
|
2089
|
+
```
|
|
2090
|
+
|
|
2091
|
+
|
|
2092
|
+
Source details:
|
|
2093
|
+
```text
|
|
2094
|
+
Boolean updateCAPK(ContantPara.CardSlot cardSlot,
|
|
2095
|
+
Declare:
|
|
2096
|
+
ContantPara.Operationoperation, Hashtable<String,String>
|
|
2097
|
+
|
|
2098
|
+
capkParams)
|
|
2099
|
+
Description: UpdateaCertificateAuthorityPublic Key objectin thedevice.
|
|
2100
|
+
TheCAPKobjecttobeupdated.Theobjectcontainsthelocation
|
|
2101
|
+
oftheCAPK in thedevice, theRID, index, modulus,exponent
|
|
2102
|
+
andthechecksumof theCAPK, all
|
|
2103
|
+
datainhex stringformat.
|
|
2104
|
+
cardSlot:
|
|
2105
|
+
ContantPara.CardSlot.ICC,ContantPara.CardSlot.PICCor
|
|
2106
|
+
ContantPara.CardSlot.UNKNOWN
|
|
2107
|
+
Rid:Identify public keyof certification center
|
|
2108
|
+
Index:Identifypublic keyofcertificationcentertogetherwithRID
|
|
2109
|
+
Exponent: Public keyexponent
|
|
2110
|
+
Parameters:
|
|
2111
|
+
Modulus:Module value of public key
|
|
2112
|
+
Checksum:Toverifypublic keyof certificationcenter
|
|
2113
|
+
Toremove aCAPK entry at thespecifiedlocation, set withthe
|
|
2114
|
+
following values:
|
|
2115
|
+
• RID (5bytes) = "A000000004"
|
|
2116
|
+
• Index(1byte) = "01"
|
|
2117
|
+
• Exponent (1byte or 3bytes) = "03"
|
|
2118
|
+
• Modulus (Nbytes) ="00"
|
|
2119
|
+
• Size (2bytes) (not use)
|
|
2120
|
+
• Checksum (20bytes) = SHA-1[RID|| Index|| Modulus ||
|
|
2121
|
+
Exponent]
|
|
2122
|
+
Return: True-updatesuccess False-updatefailed
|
|
2123
|
+
Remark: Mandatory: RID&Index&Exponent&Modulus
|
|
2124
|
+
```
|
|
2125
|
+
|
|
2126
|
+
### EMV API / updateContactAID_TLV
|
|
2127
|
+
|
|
2128
|
+
- Source section: `1.38`
|
|
2129
|
+
|
|
2130
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
2131
|
+
|
|
2132
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java and UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/TestEmv.java`
|
|
2133
|
+
|
|
2134
|
+
|
|
2135
|
+
|
|
2136
|
+
Purpose:
|
|
2137
|
+
UpdateContactAIDParameters,UseTLVString
|
|
2138
|
+
|
|
2139
|
+
AIDTLV
|
|
2140
|
+
Tag:
|
|
2141
|
+
M:
|
|
2142
|
+
9F06:AID
|
|
2143
|
+
9F09:TerminalApplicationVersion(eg:0001)
|
|
2144
|
+
DF11:TAC-Default(eg:0000000000)
|
|
2145
|
+
DF12:TAC-Online(eg:DC4004F800)
|
|
2146
|
+
DF13:TAG-Denial(eg:0000000000)
|
|
2147
|
+
DF14:DefaultDDOL(eg:9F3704)
|
|
2148
|
+
9F1B:TerminalFloorLimit(eg:00000000)
|
|
2149
|
+
O:
|
|
2150
|
+
DF01: Application Select Indicator (eg:00-Partial Match 01-Full
|
|
2151
|
+
Match)
|
|
2152
|
+
DF02:TerminalApplicationPriority(eg:00-0F)
|
|
2153
|
+
DF22:DefaultTDOL(eg:9F0206)
|
|
2154
|
+
DF15:ThresholdValue(eg:000000002000)
|
|
2155
|
+
DF16:MaxTargetPercentage(eg:00)
|
|
2156
|
+
DF17:TargetPercentage(eg:00)
|
|
2157
|
+
9F01:AcquirerID(eg:303030313131)
|
|
2158
|
+
9F33:TerminalCapabilities(eg:E0F8C8)
|
|
2159
|
+
9F1A:TerminalCountryCode(eg:0356)
|
|
2160
|
+
|
|
2161
|
+
|
|
2162
|
+
Signature/prototype:
|
|
2163
|
+
```java
|
|
2164
|
+
public boolean updateContactAID_TLV(String TLV)
|
|
2165
|
+
```
|
|
2166
|
+
|
|
2167
|
+
|
|
2168
|
+
Parameters:
|
|
2169
|
+
DF23:TerminalFloorLimitCheck(eg:01or00)
|
|
2170
|
+
5F2A:TransactionCurrencyCode(eg:0156)
|
|
2171
|
+
5F36:TransactionCurrencyCodeExponent(eg:02)
|
|
2172
|
+
DF24:ApplicationDefaultLabel(eg:4D617374657243617264)
|
|
2173
|
+
9F16:MerchantID(eg:123456789012345123456789012345)
|
|
2174
|
+
9F1C:TerminalID(eg:3132333435363738)
|
|
2175
|
+
9F15:MerchantCategoryCode(eg:1122)
|
|
2176
|
+
9F40:AdditionalTerminalCapabilities(eg:F000F0A001)
|
|
2177
|
+
9F35:TerminalType(eg:22)
|
|
2178
|
+
Note:M---Mandatory O--Optional
|
|
2179
|
+
Eg:
|
|
2180
|
+
9F0607A00000000410109F09020002DF010100DF020100DF1105000
|
|
2181
|
+
0000000DF13050010000000DF1205DC4004F800DF22039F0206DF1
|
|
2182
|
+
4039F3704DF1506000000002000DF170100DF1601009F1B0400000
|
|
2183
|
+
0009F01063030303131319F3303E0F8C89F1A020682DF230101
|
|
2184
|
+
Funs.Find_TLV
|
|
2185
|
+
Funs.AddChild_TLV
|
|
2186
|
+
Funs.New_TLV
|
|
2187
|
+
Funs.Remove_TLV
|
|
2188
|
+
YoucanusetheseApistoconstructTLV
|
|
2189
|
+
|
|
2190
|
+
|
|
2191
|
+
Return value:
|
|
2192
|
+
truefalse
|
|
2193
|
+
|
|
2194
|
+
|
|
2195
|
+
Usage notes:
|
|
2196
|
+
Payattentiontothedatalengthandformat
|
|
2197
|
+
|
|
2198
|
+
|
|
2199
|
+
Source details:
|
|
2200
|
+
```text
|
|
2201
|
+
Declare: public boolean updateContactAID_TLV(String TLV)
|
|
2202
|
+
Description: UpdateContactAIDParameters,UseTLVString
|
|
2203
|
+
|
|
2204
|
+
AIDTLV
|
|
2205
|
+
Tag:
|
|
2206
|
+
M:
|
|
2207
|
+
9F06:AID
|
|
2208
|
+
9F09:TerminalApplicationVersion(eg:0001)
|
|
2209
|
+
DF11:TAC-Default(eg:0000000000)
|
|
2210
|
+
DF12:TAC-Online(eg:DC4004F800)
|
|
2211
|
+
DF13:TAG-Denial(eg:0000000000)
|
|
2212
|
+
DF14:DefaultDDOL(eg:9F3704)
|
|
2213
|
+
9F1B:TerminalFloorLimit(eg:00000000)
|
|
2214
|
+
O:
|
|
2215
|
+
DF01: Application Select Indicator (eg:00-Partial Match 01-Full
|
|
2216
|
+
Match)
|
|
2217
|
+
DF02:TerminalApplicationPriority(eg:00-0F)
|
|
2218
|
+
DF22:DefaultTDOL(eg:9F0206)
|
|
2219
|
+
DF15:ThresholdValue(eg:000000002000)
|
|
2220
|
+
DF16:MaxTargetPercentage(eg:00)
|
|
2221
|
+
DF17:TargetPercentage(eg:00)
|
|
2222
|
+
9F01:AcquirerID(eg:303030313131)
|
|
2223
|
+
9F33:TerminalCapabilities(eg:E0F8C8)
|
|
2224
|
+
9F1A:TerminalCountryCode(eg:0356)
|
|
2225
|
+
Parameters:
|
|
2226
|
+
DF23:TerminalFloorLimitCheck(eg:01or00)
|
|
2227
|
+
5F2A:TransactionCurrencyCode(eg:0156)
|
|
2228
|
+
5F36:TransactionCurrencyCodeExponent(eg:02)
|
|
2229
|
+
DF24:ApplicationDefaultLabel(eg:4D617374657243617264)
|
|
2230
|
+
9F16:MerchantID(eg:123456789012345123456789012345)
|
|
2231
|
+
9F1C:TerminalID(eg:3132333435363738)
|
|
2232
|
+
9F15:MerchantCategoryCode(eg:1122)
|
|
2233
|
+
9F40:AdditionalTerminalCapabilities(eg:F000F0A001)
|
|
2234
|
+
9F35:TerminalType(eg:22)
|
|
2235
|
+
Note:M---Mandatory O--Optional
|
|
2236
|
+
Eg:
|
|
2237
|
+
9F0607A00000000410109F09020002DF010100DF020100DF1105000
|
|
2238
|
+
0000000DF13050010000000DF1205DC4004F800DF22039F0206DF1
|
|
2239
|
+
4039F3704DF1506000000002000DF170100DF1601009F1B0400000
|
|
2240
|
+
0009F01063030303131319F3303E0F8C89F1A020682DF230101
|
|
2241
|
+
Funs.Find_TLV
|
|
2242
|
+
Funs.AddChild_TLV
|
|
2243
|
+
Funs.New_TLV
|
|
2244
|
+
Funs.Remove_TLV
|
|
2245
|
+
YoucanusetheseApistoconstructTLV
|
|
2246
|
+
Return: truefalse
|
|
2247
|
+
Remark: Payattentiontothedatalengthandformat
|
|
2248
|
+
```
|
|
2249
|
+
|
|
2250
|
+
### EMV API / updateContactlessAID_TLV
|
|
2251
|
+
|
|
2252
|
+
- Source section: `1.39`
|
|
2253
|
+
|
|
2254
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
2255
|
+
|
|
2256
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java and UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/TestEmv.java`
|
|
2257
|
+
|
|
2258
|
+
|
|
2259
|
+
|
|
2260
|
+
Purpose:
|
|
2261
|
+
UpdateContactlessAIDParameters,UseTLVString
|
|
2262
|
+
|
|
2263
|
+
AIDTLV
|
|
2264
|
+
Note:M---Mandatory O--Optional
|
|
2265
|
+
Tag:
|
|
2266
|
+
M:
|
|
2267
|
+
9F06: ApplicationIdentifier
|
|
2268
|
+
ContantPara.NfcCardType.MasterCard:
|
|
2269
|
+
DF8120:TerminalActionCodesDefault
|
|
2270
|
+
DF8121:TerminalActionCodesDenial
|
|
2271
|
+
DF8122:TerminalActionCodesOnLine
|
|
2272
|
+
DF8123:FloorLimit
|
|
2273
|
+
DF8124:NoOnDeviceCVM
|
|
2274
|
+
DF8125:OnDeviceCVM
|
|
2275
|
+
DF8126:CVMRequiredLimit
|
|
2276
|
+
DF811A:DefaultUDOL
|
|
2277
|
+
9F1D:TerminalRiskManagement
|
|
2278
|
+
DF811B:KernelConfiguration
|
|
2279
|
+
DF8117:CardDataInputCapability
|
|
2280
|
+
DF8118:CVMCapabilityPerCVMRequired
|
|
2281
|
+
DF8119: CVMCapabilityNoCVMRequired
|
|
2282
|
+
DF811E:MagStripeCVMCapabilityCVMRequired
|
|
2283
|
+
|
|
2284
|
+
|
|
2285
|
+
Signature/prototype:
|
|
2286
|
+
```java
|
|
2287
|
+
nfcCardType,String TLV)
|
|
2288
|
+
```
|
|
2289
|
+
|
|
2290
|
+
|
|
2291
|
+
Parameters:
|
|
2292
|
+
DF811F:SecurityCapability
|
|
2293
|
+
DF812C:MagStripeCVMCapabilityPerNoCVMRequired
|
|
2294
|
+
Eg:
|
|
2295
|
+
9F0607A00000000410109F09020002DF81170160DF81180160DF811
|
|
2296
|
+
90108DF811A039F6A04DF811B0130DF810C01029F6D020001DF81
|
|
2297
|
+
1E0110DF812C0100DF812306000000000000DF8124060000500000
|
|
2298
|
+
00DF812506000050000000DF812606000000030000DF811F0108DF
|
|
2299
|
+
812205FC50BCF800DF8121050000000000DF812005FC50BC80009
|
|
2300
|
+
F1D086C7A000000000000
|
|
2301
|
+
ContantPara.NfcCardType.VisaCard:
|
|
2302
|
+
9F66:TerminalTransactionQualifiers
|
|
2303
|
+
9F92810D:TransactionLimit
|
|
2304
|
+
9F92810E:CvmRequiredLimit
|
|
2305
|
+
9F92810F:FloorLimit
|
|
2306
|
+
9F92810A:LimitSwitch
|
|
2307
|
+
9F928102:ProRestrictionDisable
|
|
2308
|
+
Eg:
|
|
2309
|
+
9F0607A00000000310109F6604360040009F92810D0699999999999
|
|
2310
|
+
99F92810F060000000000009F92810E060000005000009F92810A02
|
|
2311
|
+
FE009F1B0400000000
|
|
2312
|
+
|
|
2313
|
+
|
|
2314
|
+
Return value:
|
|
2315
|
+
truefalse
|
|
2316
|
+
|
|
2317
|
+
|
|
2318
|
+
Usage notes:
|
|
2319
|
+
Payattentiontothedatalengthandformat
|
|
2320
|
+
|
|
2321
|
+
|
|
2322
|
+
Source details:
|
|
2323
|
+
```text
|
|
2324
|
+
public boolean updateContactlessAID_TLV(ContantPara.NfcCardType
|
|
2325
|
+
Declare:
|
|
2326
|
+
nfcCardType,String TLV)
|
|
2327
|
+
Description: UpdateContactlessAIDParameters,UseTLVString
|
|
2328
|
+
|
|
2329
|
+
AIDTLV
|
|
2330
|
+
Note:M---Mandatory O--Optional
|
|
2331
|
+
Tag:
|
|
2332
|
+
M:
|
|
2333
|
+
9F06: ApplicationIdentifier
|
|
2334
|
+
ContantPara.NfcCardType.MasterCard:
|
|
2335
|
+
DF8120:TerminalActionCodesDefault
|
|
2336
|
+
DF8121:TerminalActionCodesDenial
|
|
2337
|
+
DF8122:TerminalActionCodesOnLine
|
|
2338
|
+
DF8123:FloorLimit
|
|
2339
|
+
DF8124:NoOnDeviceCVM
|
|
2340
|
+
DF8125:OnDeviceCVM
|
|
2341
|
+
DF8126:CVMRequiredLimit
|
|
2342
|
+
DF811A:DefaultUDOL
|
|
2343
|
+
9F1D:TerminalRiskManagement
|
|
2344
|
+
DF811B:KernelConfiguration
|
|
2345
|
+
DF8117:CardDataInputCapability
|
|
2346
|
+
DF8118:CVMCapabilityPerCVMRequired
|
|
2347
|
+
DF8119: CVMCapabilityNoCVMRequired
|
|
2348
|
+
DF811E:MagStripeCVMCapabilityCVMRequired
|
|
2349
|
+
Parameters:
|
|
2350
|
+
DF811F:SecurityCapability
|
|
2351
|
+
DF812C:MagStripeCVMCapabilityPerNoCVMRequired
|
|
2352
|
+
Eg:
|
|
2353
|
+
9F0607A00000000410109F09020002DF81170160DF81180160DF811
|
|
2354
|
+
90108DF811A039F6A04DF811B0130DF810C01029F6D020001DF81
|
|
2355
|
+
1E0110DF812C0100DF812306000000000000DF8124060000500000
|
|
2356
|
+
00DF812506000050000000DF812606000000030000DF811F0108DF
|
|
2357
|
+
812205FC50BCF800DF8121050000000000DF812005FC50BC80009
|
|
2358
|
+
F1D086C7A000000000000
|
|
2359
|
+
ContantPara.NfcCardType.VisaCard:
|
|
2360
|
+
9F66:TerminalTransactionQualifiers
|
|
2361
|
+
9F92810D:TransactionLimit
|
|
2362
|
+
9F92810E:CvmRequiredLimit
|
|
2363
|
+
9F92810F:FloorLimit
|
|
2364
|
+
9F92810A:LimitSwitch
|
|
2365
|
+
9F928102:ProRestrictionDisable
|
|
2366
|
+
Eg:
|
|
2367
|
+
9F0607A00000000310109F6604360040009F92810D0699999999999
|
|
2368
|
+
99F92810F060000000000009F92810E060000005000009F92810A02
|
|
2369
|
+
FE009F1B0400000000
|
|
2370
|
+
|
|
2371
|
+
Return: truefalse
|
|
2372
|
+
Remark: Payattentiontothedatalengthandformat
|
|
2373
|
+
```
|
|
2374
|
+
|
|
2375
|
+
### EMV API / updateCAPK_TLV
|
|
2376
|
+
|
|
2377
|
+
- Source section: `1.40`
|
|
2378
|
+
|
|
2379
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
2380
|
+
|
|
2381
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
2382
|
+
|
|
2383
|
+
|
|
2384
|
+
|
|
2385
|
+
Purpose:
|
|
2386
|
+
UpdateCAPKParameters,UseTLVString
|
|
2387
|
+
cardSlot:ICC,PICC,UNKNOWN
|
|
2388
|
+
ICC-contact
|
|
2389
|
+
PICC-contactless
|
|
2390
|
+
UNKNOWN-contactandcontactless
|
|
2391
|
+
Tag:
|
|
2392
|
+
M:
|
|
2393
|
+
9F06:RID
|
|
2394
|
+
9F22:Index
|
|
2395
|
+
DF02:Modulus
|
|
2396
|
+
DF04:Exponent
|
|
2397
|
+
O:
|
|
2398
|
+
DF03:CheckSum
|
|
2399
|
+
DF05:ExpiredDate
|
|
2400
|
+
DF07:AlgorithmIndicator
|
|
2401
|
+
Note:M---Mandatory O--Optional
|
|
2402
|
+
|
|
2403
|
+
|
|
2404
|
+
Signature/prototype:
|
|
2405
|
+
```java
|
|
2406
|
+
cardSlot,String TLV)
|
|
2407
|
+
```
|
|
2408
|
+
|
|
2409
|
+
|
|
2410
|
+
Parameters:
|
|
2411
|
+
Eg:
|
|
2412
|
+
9F0605A0000000039F220108DF040103DF050420401231DF0281B0
|
|
2413
|
+
D9FD6ED75D51D0E30664BD157023EAA1FFA871E4DA65672B863
|
|
2414
|
+
D255E81E137A51DE4F72BCC9E44ACE12127F87E263D3AF9DD9C
|
|
2415
|
+
F35CA4A7B01E907000BA85D24954C2FCA3074825DDD4C0C8F186
|
|
2416
|
+
CB020F683E02F2DEAD3969133F06F7845166ACEB57CA0FC26034
|
|
2417
|
+
45469811D293BFEFBAFAB57631B3DD91E796BF850A25012F1AE3
|
|
2418
|
+
8F05AA5C4D6D03B1DC2E568612785938BBC9B3CD3A910C1DA55
|
|
2419
|
+
A5A9218ACE0F7A21287752682F15832A678D6E1ED0BDF03130000
|
|
2420
|
+
0000000000000000000000000000000000
|
|
2421
|
+
Funs.Find_TLV
|
|
2422
|
+
Funs.AddChild_TLV
|
|
2423
|
+
Funs.New_TLV
|
|
2424
|
+
Funs.Remove_TLV
|
|
2425
|
+
YoucanusetheseApistoconstructTLV
|
|
2426
|
+
|
|
2427
|
+
|
|
2428
|
+
Return value:
|
|
2429
|
+
truefalse
|
|
2430
|
+
|
|
2431
|
+
|
|
2432
|
+
Usage notes:
|
|
2433
|
+
Payattentiontothedatalengthandformat
|
|
2434
|
+
|
|
2435
|
+
|
|
2436
|
+
Source details:
|
|
2437
|
+
```text
|
|
2438
|
+
Public boolean updateCAPK_TLV(ContantPara.CardSlot
|
|
2439
|
+
Declare: cardSlot,String TLV)
|
|
2440
|
+
Description: UpdateCAPKParameters,UseTLVString
|
|
2441
|
+
cardSlot:ICC,PICC,UNKNOWN
|
|
2442
|
+
ICC-contact
|
|
2443
|
+
PICC-contactless
|
|
2444
|
+
UNKNOWN-contactandcontactless
|
|
2445
|
+
Tag:
|
|
2446
|
+
M:
|
|
2447
|
+
9F06:RID
|
|
2448
|
+
9F22:Index
|
|
2449
|
+
DF02:Modulus
|
|
2450
|
+
DF04:Exponent
|
|
2451
|
+
O:
|
|
2452
|
+
DF03:CheckSum
|
|
2453
|
+
DF05:ExpiredDate
|
|
2454
|
+
DF07:AlgorithmIndicator
|
|
2455
|
+
Note:M---Mandatory O--Optional
|
|
2456
|
+
Parameters:
|
|
2457
|
+
Eg:
|
|
2458
|
+
9F0605A0000000039F220108DF040103DF050420401231DF0281B0
|
|
2459
|
+
D9FD6ED75D51D0E30664BD157023EAA1FFA871E4DA65672B863
|
|
2460
|
+
D255E81E137A51DE4F72BCC9E44ACE12127F87E263D3AF9DD9C
|
|
2461
|
+
F35CA4A7B01E907000BA85D24954C2FCA3074825DDD4C0C8F186
|
|
2462
|
+
CB020F683E02F2DEAD3969133F06F7845166ACEB57CA0FC26034
|
|
2463
|
+
45469811D293BFEFBAFAB57631B3DD91E796BF850A25012F1AE3
|
|
2464
|
+
8F05AA5C4D6D03B1DC2E568612785938BBC9B3CD3A910C1DA55
|
|
2465
|
+
A5A9218ACE0F7A21287752682F15832A678D6E1ED0BDF03130000
|
|
2466
|
+
Funs.Find_TLV
|
|
2467
|
+
Funs.AddChild_TLV
|
|
2468
|
+
Funs.New_TLV
|
|
2469
|
+
Funs.Remove_TLV
|
|
2470
|
+
YoucanusetheseApistoconstructTLV
|
|
2471
|
+
|
|
2472
|
+
Return: truefalse
|
|
2473
|
+
Remark: Payattentiontothedatalengthandformat
|
|
2474
|
+
```
|
|
2475
|
+
|
|
2476
|
+
### EMV API / exportLogFilesToExternalStorage
|
|
2477
|
+
|
|
2478
|
+
- Source section: `1.41`
|
|
2479
|
+
|
|
2480
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
2481
|
+
|
|
2482
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
2483
|
+
|
|
2484
|
+
|
|
2485
|
+
|
|
2486
|
+
Purpose:
|
|
2487
|
+
Exportlogfilesfrominternalstoragetoexternalstorage
|
|
2488
|
+
|
|
2489
|
+
|
|
2490
|
+
Signature/prototype:
|
|
2491
|
+
```java
|
|
2492
|
+
context)
|
|
2493
|
+
```
|
|
2494
|
+
|
|
2495
|
+
|
|
2496
|
+
Parameters:
|
|
2497
|
+
context:usedtogetinternalstoragepath
|
|
2498
|
+
|
|
2499
|
+
|
|
2500
|
+
Return value:
|
|
2501
|
+
truefalse
|
|
2502
|
+
|
|
2503
|
+
|
|
2504
|
+
Usage notes:
|
|
2505
|
+
usedtogetinternalstoragepath
|
|
2506
|
+
|
|
2507
|
+
|
|
2508
|
+
Source details:
|
|
2509
|
+
```text
|
|
2510
|
+
public static boolean exportLogFilesToExternalStorage(Context
|
|
2511
|
+
Declare:
|
|
2512
|
+
context)
|
|
2513
|
+
Description: Exportlogfilesfrominternalstoragetoexternalstorage
|
|
2514
|
+
Parameters: context:usedtogetinternalstoragepath
|
|
2515
|
+
Return: truefalse
|
|
2516
|
+
Remark: usedtogetinternalstoragepath
|
|
2517
|
+
```
|
|
2518
|
+
|
|
2519
|
+
### EMV API / getNfcCvmCode
|
|
2520
|
+
|
|
2521
|
+
- Source section: `1.42`
|
|
2522
|
+
|
|
2523
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
2524
|
+
|
|
2525
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
2526
|
+
|
|
2527
|
+
|
|
2528
|
+
|
|
2529
|
+
Purpose:
|
|
2530
|
+
GetstheCVMcodefromthecurrentNFCtransaction
|
|
2531
|
+
|
|
2532
|
+
|
|
2533
|
+
Signature/prototype:
|
|
2534
|
+
```java
|
|
2535
|
+
public int getNfcCvmCode()
|
|
2536
|
+
```
|
|
2537
|
+
|
|
2538
|
+
|
|
2539
|
+
Parameters:
|
|
2540
|
+
null
|
|
2541
|
+
Anintegercodeindicatingtherequiredverificationmethod.
|
|
2542
|
+
0x00-Noverificationrequired(NOCVM)
|
|
2543
|
+
0x10-Signatureverificationrequired(SIGNATURE)
|
|
2544
|
+
|
|
2545
|
+
|
|
2546
|
+
Return value:
|
|
2547
|
+
0x20-OnlinePINverificationrequired(ONLINEPIN)
|
|
2548
|
+
0x30-Confirmationcodehasbeenverified(CONFIRMATION
|
|
2549
|
+
CODEVERIFIED)
|
|
2550
|
+
0xF0-NotApplicable(N/A)
|
|
2551
|
+
|
|
2552
|
+
|
|
2553
|
+
Usage notes:
|
|
2554
|
+
None
|
|
2555
|
+
|
|
2556
|
+
|
|
2557
|
+
Source details:
|
|
2558
|
+
```text
|
|
2559
|
+
Declare: public int getNfcCvmCode()
|
|
2560
|
+
Description: GetstheCVMcodefromthecurrentNFCtransaction
|
|
2561
|
+
Parameters: null
|
|
2562
|
+
Anintegercodeindicatingtherequiredverificationmethod.
|
|
2563
|
+
0x00-Noverificationrequired(NOCVM)
|
|
2564
|
+
0x10-Signatureverificationrequired(SIGNATURE)
|
|
2565
|
+
Return: 0x20-OnlinePINverificationrequired(ONLINEPIN)
|
|
2566
|
+
0x30-Confirmationcodehasbeenverified(CONFIRMATION
|
|
2567
|
+
CODEVERIFIED)
|
|
2568
|
+
0xF0-NotApplicable(N/A)
|
|
2569
|
+
Remark: None
|
|
2570
|
+
```
|
|
2571
|
+
|
|
2572
|
+
### EMV API / getODAstatus
|
|
2573
|
+
|
|
2574
|
+
- Source section: `1.43`
|
|
2575
|
+
|
|
2576
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
2577
|
+
|
|
2578
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
2579
|
+
|
|
2580
|
+
|
|
2581
|
+
|
|
2582
|
+
Purpose:
|
|
2583
|
+
GetstheODAresultofthetransaction
|
|
2584
|
+
|
|
2585
|
+
|
|
2586
|
+
Signature/prototype:
|
|
2587
|
+
```java
|
|
2588
|
+
publicbyte getODAstatus()
|
|
2589
|
+
```
|
|
2590
|
+
|
|
2591
|
+
|
|
2592
|
+
Parameters:
|
|
2593
|
+
null
|
|
2594
|
+
0x01 SDAFail
|
|
2595
|
+
0x02 DDAFail
|
|
2596
|
+
0x03 CDAFail
|
|
2597
|
+
0x04 FDDAFail
|
|
2598
|
+
|
|
2599
|
+
|
|
2600
|
+
Return value:
|
|
2601
|
+
0x81 SDASUCESS
|
|
2602
|
+
0x82 DDASUCESS
|
|
2603
|
+
0x83 CDASUCESS
|
|
2604
|
+
0x84 FDDASUCESS
|
|
2605
|
+
|
|
2606
|
+
|
|
2607
|
+
Usage notes:
|
|
2608
|
+
onlyusedformastercardandvisacard
|
|
2609
|
+
|
|
2610
|
+
|
|
2611
|
+
Source details:
|
|
2612
|
+
```text
|
|
2613
|
+
Declare: publicbyte getODAstatus()
|
|
2614
|
+
Description: GetstheODAresultofthetransaction
|
|
2615
|
+
Parameters: null
|
|
2616
|
+
0x01 SDAFail
|
|
2617
|
+
0x02 DDAFail
|
|
2618
|
+
0x03 CDAFail
|
|
2619
|
+
0x04 FDDAFail
|
|
2620
|
+
Return:
|
|
2621
|
+
0x81 SDASUCESS
|
|
2622
|
+
0x82 DDASUCESS
|
|
2623
|
+
0x83 CDASUCESS
|
|
2624
|
+
0x84 FDDASUCESS
|
|
2625
|
+
|
|
2626
|
+
Remark: onlyusedformastercardandvisacard
|
|
2627
|
+
```
|
|
2628
|
+
|
|
2629
|
+
### EMV API / setApproveRespcodeList
|
|
2630
|
+
|
|
2631
|
+
- Source section: `1.44`
|
|
2632
|
+
|
|
2633
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
2634
|
+
|
|
2635
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
2636
|
+
|
|
2637
|
+
|
|
2638
|
+
|
|
2639
|
+
Purpose:
|
|
2640
|
+
transactionfromthehost.
|
|
2641
|
+
respcodeList:AuthorisationResponseCodeList,Separatewith'|'.such
|
|
2642
|
+
|
|
2643
|
+
|
|
2644
|
+
Signature/prototype:
|
|
2645
|
+
```java
|
|
2646
|
+
public boolean setApproveRespcodeList(StringrespcodeList)
|
|
2647
|
+
```
|
|
2648
|
+
|
|
2649
|
+
|
|
2650
|
+
Parameters:
|
|
2651
|
+
as"00|10|11"
|
|
2652
|
+
|
|
2653
|
+
|
|
2654
|
+
Return value:
|
|
2655
|
+
trueorfalse
|
|
2656
|
+
|
|
2657
|
+
|
|
2658
|
+
Usage notes:
|
|
2659
|
+
onlyusedforcontacttrade.
|
|
2660
|
+
2.Callback function
|
|
2661
|
+
|
|
2662
|
+
|
|
2663
|
+
Source details:
|
|
2664
|
+
```text
|
|
2665
|
+
Declare: public boolean setApproveRespcodeList(StringrespcodeList)
|
|
2666
|
+
SettheAuthorizationResponseCodelistthatindicatesanapproved
|
|
2667
|
+
Description:
|
|
2668
|
+
transactionfromthehost.
|
|
2669
|
+
respcodeList:AuthorisationResponseCodeList,Separatewith'|'.such
|
|
2670
|
+
Parameters:
|
|
2671
|
+
as"00|10|11"
|
|
2672
|
+
Return: trueorfalse
|
|
2673
|
+
Remark: onlyusedforcontacttrade.
|
|
2674
|
+
2.Callback function
|
|
2675
|
+
```
|
|
2676
|
+
|
|
2677
|
+
### EMV Callback / onRequestSetAmount
|
|
2678
|
+
|
|
2679
|
+
- Source section: `2.01`
|
|
2680
|
+
|
|
2681
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
2682
|
+
|
|
2683
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
2684
|
+
|
|
2685
|
+
|
|
2686
|
+
|
|
2687
|
+
Purpose:
|
|
2688
|
+
atstartEmv,thiscallback will not betriggered.Tocancelthe
|
|
2689
|
+
process,call cancelSetAmount.
|
|
2690
|
+
|
|
2691
|
+
|
|
2692
|
+
Signature/prototype:
|
|
2693
|
+
```java
|
|
2694
|
+
voidonRequestSetAmount()
|
|
2695
|
+
```
|
|
2696
|
+
|
|
2697
|
+
|
|
2698
|
+
Return value:
|
|
2699
|
+
None
|
|
2700
|
+
|
|
2701
|
+
|
|
2702
|
+
Simplified example:
|
|
2703
|
+
```java
|
|
2704
|
+
public void onRequestSetAmount() {
|
|
2705
|
+
emv.setAmountEx(100L, 0L);
|
|
2706
|
+
}
|
|
2707
|
+
```
|
|
2708
|
+
|
|
2709
|
+
|
|
2710
|
+
Source details:
|
|
2711
|
+
```text
|
|
2712
|
+
Declare: voidonRequestSetAmount()
|
|
2713
|
+
Requestinput of amountin theEMV process.If amountis input
|
|
2714
|
+
Description: atstartEmv,thiscallback will not betriggered.Tocancelthe
|
|
2715
|
+
process,call cancelSetAmount.
|
|
2716
|
+
Return: None
|
|
2717
|
+
```
|
|
2718
|
+
|
|
2719
|
+
### EMV Callback / onRequestConfirmCardno
|
|
2720
|
+
|
|
2721
|
+
- Source section: `2.02`
|
|
2722
|
+
|
|
2723
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
2724
|
+
|
|
2725
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
2726
|
+
|
|
2727
|
+
|
|
2728
|
+
|
|
2729
|
+
Purpose:
|
|
2730
|
+
Confirm theCardnumber,shouldcallsendConfirmCardnoResult(true)
|
|
2731
|
+
|
|
2732
|
+
|
|
2733
|
+
Signature/prototype:
|
|
2734
|
+
```java
|
|
2735
|
+
voidonRequestConfirmCardno()
|
|
2736
|
+
```
|
|
2737
|
+
|
|
2738
|
+
|
|
2739
|
+
Simplified example:
|
|
2740
|
+
```java
|
|
2741
|
+
public void onRequestConfirmCardno() {
|
|
2742
|
+
emv.sendConfirmCardnoResult(true);
|
|
2743
|
+
}
|
|
2744
|
+
```
|
|
2745
|
+
|
|
2746
|
+
|
|
2747
|
+
Source details:
|
|
2748
|
+
```text
|
|
2749
|
+
Declare: voidonRequestConfirmCardno()
|
|
2750
|
+
Description:
|
|
2751
|
+
Confirm theCardnumber,shouldcallsendConfirmCardnoResult(true)
|
|
2752
|
+
Return:
|
|
2753
|
+
```
|
|
2754
|
+
|
|
2755
|
+
### EMV Callback / onReturnCheckCardResult
|
|
2756
|
+
|
|
2757
|
+
- Source section: `2.03`
|
|
2758
|
+
|
|
2759
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
2760
|
+
|
|
2761
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
2762
|
+
|
|
2763
|
+
|
|
2764
|
+
|
|
2765
|
+
Purpose:
|
|
2766
|
+
card.
|
|
2767
|
+
|
|
2768
|
+
•Seeenum CheckCardResult
|
|
2769
|
+
Key: StripInfo
|
|
2770
|
+
|
|
2771
|
+
|
|
2772
|
+
Signature/prototype:
|
|
2773
|
+
```java
|
|
2774
|
+
checkCardResult, Hashtable<String,String>
|
|
2775
|
+
decodeData)
|
|
2776
|
+
Returntheresultsinresponsetoaswiped, insertedor tapped
|
|
2777
|
+
```
|
|
2778
|
+
|
|
2779
|
+
|
|
2780
|
+
Return value:
|
|
2781
|
+
CardNo
|
|
2782
|
+
|
|
2783
|
+
|
|
2784
|
+
Source details:
|
|
2785
|
+
```text
|
|
2786
|
+
voidonReturnCheckCardResult(CheckCardResult
|
|
2787
|
+
Declare: checkCardResult, Hashtable<String,String>
|
|
2788
|
+
decodeData)
|
|
2789
|
+
Returntheresultsinresponsetoaswiped, insertedor tapped
|
|
2790
|
+
Description:
|
|
2791
|
+
card.
|
|
2792
|
+
|
|
2793
|
+
•Seeenum CheckCardResult
|
|
2794
|
+
Key: StripInfo
|
|
2795
|
+
Return: CardNo
|
|
2796
|
+
```
|
|
2797
|
+
|
|
2798
|
+
### EMV Callback / onRequestSelectApplication
|
|
2799
|
+
|
|
2800
|
+
- Source section: `2.04`
|
|
2801
|
+
|
|
2802
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
2803
|
+
|
|
2804
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
2805
|
+
|
|
2806
|
+
|
|
2807
|
+
|
|
2808
|
+
Purpose:
|
|
2809
|
+
canceltheprocess, call cancelSelectApplication.
|
|
2810
|
+
Returnalist of applications supportedbythemPOSdevice and
|
|
2811
|
+
|
|
2812
|
+
|
|
2813
|
+
Signature/prototype:
|
|
2814
|
+
```java
|
|
2815
|
+
voidonRequestSelectApplication(ArrayList<String> appList)
|
|
2816
|
+
```
|
|
2817
|
+
|
|
2818
|
+
|
|
2819
|
+
Return value:
|
|
2820
|
+
theEMV chipcard.Theapplications aresortedbypriority,where
|
|
2821
|
+
index0 isthehighestpriority.
|
|
2822
|
+
|
|
2823
|
+
|
|
2824
|
+
Simplified example:
|
|
2825
|
+
```java
|
|
2826
|
+
public void onRequestSelectApplication(ArrayList<String> apps) {
|
|
2827
|
+
emv.selectApplication(0);
|
|
2828
|
+
}
|
|
2829
|
+
```
|
|
2830
|
+
|
|
2831
|
+
|
|
2832
|
+
Source details:
|
|
2833
|
+
```text
|
|
2834
|
+
Declare: voidonRequestSelectApplication(ArrayList<String> appList)
|
|
2835
|
+
Requestselection of anapplication from thereturnedlist.To
|
|
2836
|
+
Description:
|
|
2837
|
+
canceltheprocess, call cancelSelectApplication.
|
|
2838
|
+
Returnalist of applications supportedbythemPOSdevice and
|
|
2839
|
+
Return: theEMV chipcard.Theapplications aresortedbypriority,where
|
|
2840
|
+
index0 isthehighestpriority.
|
|
2841
|
+
```
|
|
2842
|
+
|
|
2843
|
+
### EMV Callback / onRequestPinEntry
|
|
2844
|
+
|
|
2845
|
+
- Source section: `2.05`
|
|
2846
|
+
|
|
2847
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
2848
|
+
|
|
2849
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
2850
|
+
|
|
2851
|
+
|
|
2852
|
+
|
|
2853
|
+
Purpose:
|
|
2854
|
+
theprocess, call cancelPinEntry.This callbackcan betriggered
|
|
2855
|
+
bystartKernel.
|
|
2856
|
+
IndicatethePINentrysource, seePinEntrySource
|
|
2857
|
+
|
|
2858
|
+
|
|
2859
|
+
Signature/prototype:
|
|
2860
|
+
```java
|
|
2861
|
+
voidonRequestPinEntry(PinEntrySource pinEntrySource)
|
|
2862
|
+
```
|
|
2863
|
+
|
|
2864
|
+
|
|
2865
|
+
Return value:
|
|
2866
|
+
enumeration.
|
|
2867
|
+
|
|
2868
|
+
|
|
2869
|
+
Simplified example:
|
|
2870
|
+
```java
|
|
2871
|
+
public void onRequestPinEntry(ContantPara.PinEntrySource source) {
|
|
2872
|
+
emv.sendPinEntry();
|
|
2873
|
+
}
|
|
2874
|
+
```
|
|
2875
|
+
|
|
2876
|
+
|
|
2877
|
+
Source details:
|
|
2878
|
+
```text
|
|
2879
|
+
Declare: voidonRequestPinEntry(PinEntrySource pinEntrySource)
|
|
2880
|
+
RequestPIN entryfrom thespecifiedPinEntrySource.Tocancel
|
|
2881
|
+
Description: theprocess, call cancelPinEntry.This callbackcan betriggered
|
|
2882
|
+
bystartKernel.
|
|
2883
|
+
IndicatethePINentrysource, seePinEntrySource
|
|
2884
|
+
Return:
|
|
2885
|
+
enumeration.
|
|
2886
|
+
```
|
|
2887
|
+
|
|
2888
|
+
### EMV Callback / onRequestFinalConfirm
|
|
2889
|
+
|
|
2890
|
+
- Source section: `2.06`
|
|
2891
|
+
|
|
2892
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
2893
|
+
|
|
2894
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
2895
|
+
|
|
2896
|
+
|
|
2897
|
+
|
|
2898
|
+
Purpose:
|
|
2899
|
+
thefirst generateAC command.Toproceedor cancelthe
|
|
2900
|
+
transaction, call sendFinalConfirmResult.
|
|
2901
|
+
|
|
2902
|
+
|
|
2903
|
+
Signature/prototype:
|
|
2904
|
+
```java
|
|
2905
|
+
voidonRequestFinalConfirm()
|
|
2906
|
+
```
|
|
2907
|
+
|
|
2908
|
+
|
|
2909
|
+
Return value:
|
|
2910
|
+
None
|
|
2911
|
+
|
|
2912
|
+
|
|
2913
|
+
Source details:
|
|
2914
|
+
```text
|
|
2915
|
+
Declare: voidonRequestFinalConfirm()
|
|
2916
|
+
TheEMV processrequest fora finalconfirmation beforecalling
|
|
2917
|
+
Description: thefirst generateAC command.Toproceedor cancelthe
|
|
2918
|
+
transaction, call sendFinalConfirmResult.
|
|
2919
|
+
Return: None
|
|
2920
|
+
```
|
|
2921
|
+
|
|
2922
|
+
### EMV Callback / onRequestOnlineProcess
|
|
2923
|
+
|
|
2924
|
+
- Source section: `2.07`
|
|
2925
|
+
|
|
2926
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
2927
|
+
|
|
2928
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
2929
|
+
|
|
2930
|
+
|
|
2931
|
+
|
|
2932
|
+
Purpose:
|
|
2933
|
+
transaction, call sendOnlineProcessResult.
|
|
2934
|
+
|
|
2935
|
+
Aset of transaction datainTag-Length-Valueformatthat should
|
|
2936
|
+
besent backtoonline server.
|
|
2937
|
+
|
|
2938
|
+
|
|
2939
|
+
Signature/prototype:
|
|
2940
|
+
```java
|
|
2941
|
+
voidonRequestOnlineProcess(String tlv,StringdataKsn)
|
|
2942
|
+
```
|
|
2943
|
+
|
|
2944
|
+
|
|
2945
|
+
Return value:
|
|
2946
|
+
Tlv:TLVdata
|
|
2947
|
+
dataKsn:KSN fordataencryption
|
|
2948
|
+
|
|
2949
|
+
|
|
2950
|
+
Simplified example:
|
|
2951
|
+
```java
|
|
2952
|
+
public void onRequestOnlineProcess(String cardTlvData, String dataKsn) {
|
|
2953
|
+
// Send cardTlvData as field 55, then return issuer TLV.
|
|
2954
|
+
emv.sendOnlineProcessResult("8A023030");
|
|
2955
|
+
}
|
|
2956
|
+
```
|
|
2957
|
+
|
|
2958
|
+
|
|
2959
|
+
Source details:
|
|
2960
|
+
```text
|
|
2961
|
+
Declare: voidonRequestOnlineProcess(String tlv,StringdataKsn)
|
|
2962
|
+
Requestthetransactiongo online.Toproceedor terminatethe
|
|
2963
|
+
Description:
|
|
2964
|
+
transaction, call sendOnlineProcessResult.
|
|
2965
|
+
|
|
2966
|
+
Aset of transaction datainTag-Length-Valueformatthat should
|
|
2967
|
+
besent backtoonline server.
|
|
2968
|
+
Return:
|
|
2969
|
+
Tlv:TLVdata
|
|
2970
|
+
dataKsn:KSN fordataencryption
|
|
2971
|
+
```
|
|
2972
|
+
|
|
2973
|
+
### EMV Callback / onReturnBatchData
|
|
2974
|
+
|
|
2975
|
+
- Source section: `2.08`
|
|
2976
|
+
|
|
2977
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
2978
|
+
|
|
2979
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
2980
|
+
|
|
2981
|
+
|
|
2982
|
+
|
|
2983
|
+
Purpose:
|
|
2984
|
+
Returnthebatchdataafter completionof an EMV transaction.
|
|
2985
|
+
Aset of transaction datainTag-Length-Valueformatthat should
|
|
2986
|
+
|
|
2987
|
+
|
|
2988
|
+
Signature/prototype:
|
|
2989
|
+
```java
|
|
2990
|
+
voidonReturnBatchData(String tlv)
|
|
2991
|
+
```
|
|
2992
|
+
|
|
2993
|
+
|
|
2994
|
+
Return value:
|
|
2995
|
+
besent backtoserver forprocessing.(Usein offlineapprove)
|
|
2996
|
+
|
|
2997
|
+
|
|
2998
|
+
Source details:
|
|
2999
|
+
```text
|
|
3000
|
+
Declare: voidonReturnBatchData(String tlv)
|
|
3001
|
+
Description: Returnthebatchdataafter completionof an EMV transaction.
|
|
3002
|
+
Aset of transaction datainTag-Length-Valueformatthat should
|
|
3003
|
+
Return:
|
|
3004
|
+
besent backtoserver forprocessing.(Usein offlineapprove)
|
|
3005
|
+
```
|
|
3006
|
+
|
|
3007
|
+
### EMV Callback / onReturnTransactionResult
|
|
3008
|
+
|
|
3009
|
+
- Source section: `2.09`
|
|
3010
|
+
|
|
3011
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
3012
|
+
|
|
3013
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
3014
|
+
|
|
3015
|
+
|
|
3016
|
+
|
|
3017
|
+
Purpose:
|
|
3018
|
+
Returnthetransactionresult.
|
|
3019
|
+
Indicatethetransactionresult, seeTransactionResult
|
|
3020
|
+
|
|
3021
|
+
|
|
3022
|
+
Signature/prototype:
|
|
3023
|
+
```java
|
|
3024
|
+
voidonReturnTransactionResult(TransactionResult transResult)
|
|
3025
|
+
```
|
|
3026
|
+
|
|
3027
|
+
|
|
3028
|
+
Return value:
|
|
3029
|
+
enumeration.
|
|
3030
|
+
|
|
3031
|
+
|
|
3032
|
+
Simplified example:
|
|
3033
|
+
```java
|
|
3034
|
+
public void onReturnTransactionResult(ContantPara.TransactionResult result) {
|
|
3035
|
+
if (result == ContantPara.TransactionResult.ONLINE_APPROVAL ||
|
|
3036
|
+
result == ContantPara.TransactionResult.OFFLINE_APPROVAL) {
|
|
3037
|
+
// complete approved transaction
|
|
3038
|
+
} else {
|
|
3039
|
+
// decline, reverse, or show failure according to business rules
|
|
3040
|
+
}
|
|
3041
|
+
}
|
|
3042
|
+
```
|
|
3043
|
+
|
|
3044
|
+
|
|
3045
|
+
Source details:
|
|
3046
|
+
```text
|
|
3047
|
+
Declare: voidonReturnTransactionResult(TransactionResult transResult)
|
|
3048
|
+
Description: Returnthetransactionresult.
|
|
3049
|
+
Indicatethetransactionresult, seeTransactionResult
|
|
3050
|
+
Return:
|
|
3051
|
+
enumeration.
|
|
3052
|
+
```
|
|
3053
|
+
|
|
3054
|
+
### EMV Callback / onRequestDisplayText
|
|
3055
|
+
|
|
3056
|
+
- Source section: `2.10`
|
|
3057
|
+
|
|
3058
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
3059
|
+
|
|
3060
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
3061
|
+
|
|
3062
|
+
|
|
3063
|
+
|
|
3064
|
+
Purpose:
|
|
3065
|
+
Returnthemessage toprompt customer.
|
|
3066
|
+
Indicatethemessageto bedisplayed, seeDisplayText
|
|
3067
|
+
|
|
3068
|
+
|
|
3069
|
+
Signature/prototype:
|
|
3070
|
+
```java
|
|
3071
|
+
voidonRequestDisplayText(DisplayText displayText)
|
|
3072
|
+
```
|
|
3073
|
+
|
|
3074
|
+
|
|
3075
|
+
Return value:
|
|
3076
|
+
enumeration.
|
|
3077
|
+
|
|
3078
|
+
|
|
3079
|
+
Source details:
|
|
3080
|
+
```text
|
|
3081
|
+
Declare: voidonRequestDisplayText(DisplayText displayText)
|
|
3082
|
+
Description: Returnthemessage toprompt customer.
|
|
3083
|
+
Indicatethemessageto bedisplayed, seeDisplayText
|
|
3084
|
+
Return:
|
|
3085
|
+
enumeration.
|
|
3086
|
+
```
|
|
3087
|
+
|
|
3088
|
+
### EMV Callback / onRequestOfflinePinEntry
|
|
3089
|
+
|
|
3090
|
+
- Source section: `2.11`
|
|
3091
|
+
|
|
3092
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
3093
|
+
|
|
3094
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
3095
|
+
|
|
3096
|
+
|
|
3097
|
+
|
|
3098
|
+
Purpose:
|
|
3099
|
+
Usuallynotuse
|
|
3100
|
+
|
|
3101
|
+
|
|
3102
|
+
Signature/prototype:
|
|
3103
|
+
```java
|
|
3104
|
+
pinEntrySource,int PinTryCount);
|
|
3105
|
+
```
|
|
3106
|
+
|
|
3107
|
+
|
|
3108
|
+
Source details:
|
|
3109
|
+
```text
|
|
3110
|
+
voidonRequestOfflinePinEntry(ContantPara.PinEntrySource
|
|
3111
|
+
Declare:
|
|
3112
|
+
pinEntrySource,int PinTryCount);
|
|
3113
|
+
Description: Usuallynotuse
|
|
3114
|
+
Return:
|
|
3115
|
+
```
|
|
3116
|
+
|
|
3117
|
+
### EMV Callback / onRequestOfflinePINVerify
|
|
3118
|
+
|
|
3119
|
+
- Source section: `2.12`
|
|
3120
|
+
|
|
3121
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
3122
|
+
|
|
3123
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
3124
|
+
|
|
3125
|
+
|
|
3126
|
+
|
|
3127
|
+
Purpose:
|
|
3128
|
+
Offlinepinverify(use inAndroidos8.0)
|
|
3129
|
+
|
|
3130
|
+
|
|
3131
|
+
Signature/prototype:
|
|
3132
|
+
```java
|
|
3133
|
+
pinEntrySource,int pinEntryType, Bundlebundle);
|
|
3134
|
+
```
|
|
3135
|
+
|
|
3136
|
+
|
|
3137
|
+
Parameters:
|
|
3138
|
+
pinEntrySource-seeeuam ContantPara.PinEntrySource
|
|
3139
|
+
|
|
3140
|
+
pinEntryType:0-----Offline PlainPin1--- OfflineencryptionPin
|
|
3141
|
+
bundle:key: ModuleLen
|
|
3142
|
+
|
|
3143
|
+
|
|
3144
|
+
Return value:
|
|
3145
|
+
Module
|
|
3146
|
+
ExponentLen
|
|
3147
|
+
Exponent
|
|
3148
|
+
|
|
3149
|
+
|
|
3150
|
+
Usage notes:
|
|
3151
|
+
Pleasecheckthesampledemoapp
|
|
3152
|
+
|
|
3153
|
+
|
|
3154
|
+
Simplified example:
|
|
3155
|
+
```java
|
|
3156
|
+
public void onRequestOfflinePINVerify(ContantPara.PinEntrySource source, int type, Bundle data) {
|
|
3157
|
+
int retries = emv.getOfflinePinTryTimes();
|
|
3158
|
+
// collect offline PIN, then call sendOfflinePINVerifyResult(result) when required
|
|
3159
|
+
}
|
|
3160
|
+
```
|
|
3161
|
+
|
|
3162
|
+
|
|
3163
|
+
Source details:
|
|
3164
|
+
```text
|
|
3165
|
+
voidonRequestOfflinePINVerify(ContantPara.PinEntrySource
|
|
3166
|
+
Declare:
|
|
3167
|
+
pinEntrySource,int pinEntryType, Bundlebundle);
|
|
3168
|
+
Description: Offlinepinverify(use inAndroidos8.0)
|
|
3169
|
+
Parameters: pinEntrySource-seeeuam ContantPara.PinEntrySource
|
|
3170
|
+
|
|
3171
|
+
pinEntryType:0-----Offline PlainPin1--- OfflineencryptionPin
|
|
3172
|
+
bundle:key: ModuleLen
|
|
3173
|
+
Return: Module
|
|
3174
|
+
ExponentLen
|
|
3175
|
+
Exponent
|
|
3176
|
+
Remark: Pleasecheckthesampledemoapp
|
|
3177
|
+
```
|
|
3178
|
+
|
|
3179
|
+
### EMV Callback / onReturnIssuerScriptResult
|
|
3180
|
+
|
|
3181
|
+
- Source section: `2.13`
|
|
3182
|
+
|
|
3183
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
3184
|
+
|
|
3185
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
3186
|
+
|
|
3187
|
+
|
|
3188
|
+
|
|
3189
|
+
Purpose:
|
|
3190
|
+
Tlv:-field55data
|
|
3191
|
+
|
|
3192
|
+
|
|
3193
|
+
Signature/prototype:
|
|
3194
|
+
```java
|
|
3195
|
+
onReturnIssuerScriptResult(ContantPara.IssuerScriptResult
|
|
3196
|
+
scriptResult,String tlv)
|
|
3197
|
+
ReturnScriptResult,tagDF31isscarptresult
|
|
3198
|
+
```
|
|
3199
|
+
|
|
3200
|
+
|
|
3201
|
+
Return value:
|
|
3202
|
+
none
|
|
3203
|
+
|
|
3204
|
+
|
|
3205
|
+
Source details:
|
|
3206
|
+
```text
|
|
3207
|
+
void
|
|
3208
|
+
Declare: onReturnIssuerScriptResult(ContantPara.IssuerScriptResult
|
|
3209
|
+
scriptResult,String tlv)
|
|
3210
|
+
ReturnScriptResult,tagDF31isscarptresult
|
|
3211
|
+
Description:
|
|
3212
|
+
Tlv:-field55data
|
|
3213
|
+
Return: none
|
|
3214
|
+
```
|
|
3215
|
+
|
|
3216
|
+
### EMV Callback / onNFCrequestTipsConfirm
|
|
3217
|
+
|
|
3218
|
+
- Source section: `2.14`
|
|
3219
|
+
|
|
3220
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
3221
|
+
|
|
3222
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
3223
|
+
|
|
3224
|
+
|
|
3225
|
+
|
|
3226
|
+
Purpose:
|
|
3227
|
+
messageID:checkenumNfcTipMessageID
|
|
3228
|
+
msg:
|
|
3229
|
+
PLS_REMOVE_CARD,
|
|
3230
|
+
PLS_USE_CONTACT_IC_CARD,//1
|
|
3231
|
+
NEED_SIGNATURE,//2
|
|
3232
|
+
END_APPLICATION,//3
|
|
3233
|
+
SEE_PHONE_REMOVE_AND_PRESENT_CARD,//4
|
|
3234
|
+
DISPLAY_BALANCE,//5
|
|
3235
|
+
|
|
3236
|
+
|
|
3237
|
+
Signature/prototype:
|
|
3238
|
+
```java
|
|
3239
|
+
messageID,Stringmsg);
|
|
3240
|
+
```
|
|
3241
|
+
|
|
3242
|
+
|
|
3243
|
+
Parameters:
|
|
3244
|
+
CARD_READ_OK,//6
|
|
3245
|
+
PLS_SECOND_TAP_CARD,//7
|
|
3246
|
+
APPLICATION_BLOCKED,//8
|
|
3247
|
+
TRY_AGAIN_RESENT_CARD,//9
|
|
3248
|
+
USE_MAG_STRIPE,//10
|
|
3249
|
+
INSERT_SWIPE_OR_TRY_ANOTHER_CARD,//11
|
|
3250
|
+
TERMINATE,
|
|
3251
|
+
CARD_ERROR,
|
|
3252
|
+
PROCESSING_ERROR,
|
|
3253
|
+
UNKNOW
|
|
3254
|
+
|
|
3255
|
+
|
|
3256
|
+
Usage notes:
|
|
3257
|
+
CalledatprocessPayPassKernel
|
|
3258
|
+
|
|
3259
|
+
|
|
3260
|
+
Source details:
|
|
3261
|
+
```text
|
|
3262
|
+
void onNFCrequestTipsConfirm(ContantPara.NfcTipMessageID
|
|
3263
|
+
Declare:
|
|
3264
|
+
messageID,Stringmsg);
|
|
3265
|
+
Requestapplicationdisplaymassage.
|
|
3266
|
+
Description:
|
|
3267
|
+
messageID:checkenumNfcTipMessageID
|
|
3268
|
+
msg:
|
|
3269
|
+
PLS_REMOVE_CARD,
|
|
3270
|
+
PLS_USE_CONTACT_IC_CARD,//1
|
|
3271
|
+
NEED_SIGNATURE,//2
|
|
3272
|
+
END_APPLICATION,//3
|
|
3273
|
+
SEE_PHONE_REMOVE_AND_PRESENT_CARD,//4
|
|
3274
|
+
DISPLAY_BALANCE,//5
|
|
3275
|
+
Parameters: CARD_READ_OK,//6
|
|
3276
|
+
PLS_SECOND_TAP_CARD,//7
|
|
3277
|
+
APPLICATION_BLOCKED,//8
|
|
3278
|
+
TRY_AGAIN_RESENT_CARD,//9
|
|
3279
|
+
USE_MAG_STRIPE,//10
|
|
3280
|
+
INSERT_SWIPE_OR_TRY_ANOTHER_CARD,//11
|
|
3281
|
+
TERMINATE,
|
|
3282
|
+
CARD_ERROR,
|
|
3283
|
+
PROCESSING_ERROR,
|
|
3284
|
+
UNKNOW
|
|
3285
|
+
|
|
3286
|
+
Remark: CalledatprocessPayPassKernel
|
|
3287
|
+
```
|
|
3288
|
+
|
|
3289
|
+
### EMV Callback / onNFCrequestOnline
|
|
3290
|
+
|
|
3291
|
+
- Source section: `2.15`
|
|
3292
|
+
|
|
3293
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
3294
|
+
|
|
3295
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
3296
|
+
|
|
3297
|
+
|
|
3298
|
+
|
|
3299
|
+
Purpose:
|
|
3300
|
+
Whentransactionneedgoonline
|
|
3301
|
+
Hashtable:
|
|
3302
|
+
"KSN" :customformatksn,usuallynotuse
|
|
3303
|
+
|
|
3304
|
+
|
|
3305
|
+
Signature/prototype:
|
|
3306
|
+
```java
|
|
3307
|
+
void onNFCrequestOnline (Hashtable<String,String>hashtable);
|
|
3308
|
+
```
|
|
3309
|
+
|
|
3310
|
+
|
|
3311
|
+
Parameters:
|
|
3312
|
+
"TRACKDATA" :customformatdata,usuallynotuse
|
|
3313
|
+
"EMVDATA":contactlesstransactionTLVdata
|
|
3314
|
+
|
|
3315
|
+
|
|
3316
|
+
Return value:
|
|
3317
|
+
If0x5A(PAN)isnotreturned,pleaseParsingtag0x57togetPAN,if0x57
|
|
3318
|
+
|
|
3319
|
+
|
|
3320
|
+
Usage notes:
|
|
3321
|
+
is not returned, please check whether it's a mstrip card. For mastercard
|
|
3322
|
+
mstriptheTrack2EquivalentDatawillbesaveattag0x9f6b
|
|
3323
|
+
|
|
3324
|
+
|
|
3325
|
+
Source details:
|
|
3326
|
+
```text
|
|
3327
|
+
Declare: void onNFCrequestOnline (Hashtable<String,String>hashtable);
|
|
3328
|
+
Description: Whentransactionneedgoonline
|
|
3329
|
+
Hashtable:
|
|
3330
|
+
"KSN" :customformatksn,usuallynotuse
|
|
3331
|
+
Parameters: "TRACKDATA" :customformatdata,usuallynotuse
|
|
3332
|
+
"EMVDATA":contactlesstransactionTLVdata
|
|
3333
|
+
Return:
|
|
3334
|
+
If0x5A(PAN)isnotreturned,pleaseParsingtag0x57togetPAN,if0x57
|
|
3335
|
+
Remark: is not returned, please check whether it's a mstrip card. For mastercard
|
|
3336
|
+
mstriptheTrack2EquivalentDatawillbesaveattag0x9f6b
|
|
3337
|
+
```
|
|
3338
|
+
|
|
3339
|
+
### EMV Callback / onNFCrequestImportPin
|
|
3340
|
+
|
|
3341
|
+
- Source section: `2.16`
|
|
3342
|
+
|
|
3343
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
3344
|
+
|
|
3345
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
3346
|
+
|
|
3347
|
+
|
|
3348
|
+
|
|
3349
|
+
Purpose:
|
|
3350
|
+
ParametersNotusednow
|
|
3351
|
+
Callthepasswordkeyboardinthiscallbackfunction,youmayneedtoget
|
|
3352
|
+
thecardnumber
|
|
3353
|
+
|
|
3354
|
+
|
|
3355
|
+
Signature/prototype:
|
|
3356
|
+
```java
|
|
3357
|
+
voidonNFCrequestImportPin (int type, int lasttimeFlag, Stringamt);
|
|
3358
|
+
```
|
|
3359
|
+
|
|
3360
|
+
|
|
3361
|
+
Parameters:
|
|
3362
|
+
You can get the card number through tag5A, if tag5A is empty, you can
|
|
3363
|
+
getthecardnumberthroughtag57
|
|
3364
|
+
|
|
3365
|
+
|
|
3366
|
+
Source details:
|
|
3367
|
+
```text
|
|
3368
|
+
Declare: voidonNFCrequestImportPin (int type, int lasttimeFlag, Stringamt);
|
|
3369
|
+
ContactlessrequestimportPIN
|
|
3370
|
+
Description:
|
|
3371
|
+
ParametersNotusednow
|
|
3372
|
+
Callthepasswordkeyboardinthiscallbackfunction,youmayneedtoget
|
|
3373
|
+
thecardnumber
|
|
3374
|
+
Parameters:
|
|
3375
|
+
You can get the card number through tag5A, if tag5A is empty, you can
|
|
3376
|
+
getthecardnumberthroughtag57
|
|
3377
|
+
Return:
|
|
3378
|
+
Remark:
|
|
3379
|
+
```
|
|
3380
|
+
|
|
3381
|
+
### EMV Callback / onNFCTransResult
|
|
3382
|
+
|
|
3383
|
+
- Source section: `2.17`
|
|
3384
|
+
|
|
3385
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
3386
|
+
|
|
3387
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
3388
|
+
|
|
3389
|
+
|
|
3390
|
+
|
|
3391
|
+
Purpose:
|
|
3392
|
+
Returnthetransactionresulttoapplication
|
|
3393
|
+
|
|
3394
|
+
Result:
|
|
3395
|
+
CheckenumNfcTransResult
|
|
3396
|
+
ONLINE_APPROVAL,
|
|
3397
|
+
DECLINE_ONLINE,
|
|
3398
|
+
TERMINATE,
|
|
3399
|
+
OFFLINE_APPROVAL,
|
|
3400
|
+
|
|
3401
|
+
|
|
3402
|
+
Signature/prototype:
|
|
3403
|
+
```java
|
|
3404
|
+
voidonNFCTransResult(ContantPara.NfcTransResultresult);
|
|
3405
|
+
```
|
|
3406
|
+
|
|
3407
|
+
|
|
3408
|
+
Parameters:
|
|
3409
|
+
OTHER_INTERFACES,
|
|
3410
|
+
RETRY,
|
|
3411
|
+
CARD_REMOVED,
|
|
3412
|
+
ISSUER_SCRIPT_UPDATE_SUCCESSFUL,//8
|
|
3413
|
+
ISSUER_SCRIPT_UPDATE_FAILED,//9
|
|
3414
|
+
DECLINE_OFFLINE
|
|
3415
|
+
None
|
|
3416
|
+
|
|
3417
|
+
|
|
3418
|
+
Return value:
|
|
3419
|
+
If the result is OFFLINE_APPROVAL, please call getNfcCvmCode() to
|
|
3420
|
+
get the CVM (Cardholder Verification Method) code. Then, If the return
|
|
3421
|
+
|
|
3422
|
+
|
|
3423
|
+
Usage notes:
|
|
3424
|
+
value of the CVM code is 0x10 (indicating signature required), then
|
|
3425
|
+
requireasignaturewhenprintingtheslip.
|
|
3426
|
+
|
|
3427
|
+
|
|
3428
|
+
Source details:
|
|
3429
|
+
```text
|
|
3430
|
+
Declare: voidonNFCTransResult(ContantPara.NfcTransResultresult);
|
|
3431
|
+
Description: Returnthetransactionresulttoapplication
|
|
3432
|
+
|
|
3433
|
+
Result:
|
|
3434
|
+
CheckenumNfcTransResult
|
|
3435
|
+
ONLINE_APPROVAL,
|
|
3436
|
+
DECLINE_ONLINE,
|
|
3437
|
+
TERMINATE,
|
|
3438
|
+
OFFLINE_APPROVAL,
|
|
3439
|
+
Parameters:
|
|
3440
|
+
OTHER_INTERFACES,
|
|
3441
|
+
RETRY,
|
|
3442
|
+
CARD_REMOVED,
|
|
3443
|
+
ISSUER_SCRIPT_UPDATE_SUCCESSFUL,//8
|
|
3444
|
+
ISSUER_SCRIPT_UPDATE_FAILED,//9
|
|
3445
|
+
DECLINE_OFFLINE
|
|
3446
|
+
None
|
|
3447
|
+
Return:
|
|
3448
|
+
If the result is OFFLINE_APPROVAL, please call getNfcCvmCode() to
|
|
3449
|
+
get the CVM (Cardholder Verification Method) code. Then, If the return
|
|
3450
|
+
Remark:
|
|
3451
|
+
value of the CVM code is 0x10 (indicating signature required), then
|
|
3452
|
+
requireasignaturewhenprintingtheslip.
|
|
3453
|
+
```
|
|
3454
|
+
|
|
3455
|
+
### EMV Callback / onNFCErrorInfor
|
|
3456
|
+
|
|
3457
|
+
- Source section: `2.18`
|
|
3458
|
+
|
|
3459
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
3460
|
+
|
|
3461
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
3462
|
+
|
|
3463
|
+
|
|
3464
|
+
|
|
3465
|
+
Purpose:
|
|
3466
|
+
Contactlesstransactionerrorcallbackfunction
|
|
3467
|
+
errID:checkenum NfcErrMessageID
|
|
3468
|
+
strErrInfo:
|
|
3469
|
+
ERR_LOAD_CALLBACK,
|
|
3470
|
+
ICS_PARAM_NOT_FIND,
|
|
3471
|
+
KERNEL_ERR,
|
|
3472
|
+
|
|
3473
|
+
|
|
3474
|
+
Signature/prototype:
|
|
3475
|
+
```java
|
|
3476
|
+
strErrInfo);
|
|
3477
|
+
```
|
|
3478
|
+
|
|
3479
|
+
|
|
3480
|
+
Parameters:
|
|
3481
|
+
ERR_PIN_LENTH,
|
|
3482
|
+
ERR_MULT_CARD,
|
|
3483
|
+
ERR_CHECK_CARD,
|
|
3484
|
+
AID_PARAM_NOT_FIND,
|
|
3485
|
+
CAPK_PARAM_NOT_FIND,
|
|
3486
|
+
GET_KERNEL_DATA_FAILED,
|
|
3487
|
+
QPBOC_FDDA_FAILED,
|
|
3488
|
+
PURE_ELE_CASH_CARD_NOT_ALLOW_ONLINE_TRANS,
|
|
3489
|
+
|
|
3490
|
+
|
|
3491
|
+
Source details:
|
|
3492
|
+
```text
|
|
3493
|
+
void onNFCErrorInfor (ContantPara.NfcErrMessageID errID, String
|
|
3494
|
+
Declare:
|
|
3495
|
+
strErrInfo);
|
|
3496
|
+
Description: Contactlesstransactionerrorcallbackfunction
|
|
3497
|
+
errID:checkenum NfcErrMessageID
|
|
3498
|
+
strErrInfo:
|
|
3499
|
+
ERR_LOAD_CALLBACK,
|
|
3500
|
+
ICS_PARAM_NOT_FIND,
|
|
3501
|
+
KERNEL_ERR,
|
|
3502
|
+
Parameters: ERR_PIN_LENTH,
|
|
3503
|
+
ERR_MULT_CARD,
|
|
3504
|
+
ERR_CHECK_CARD,
|
|
3505
|
+
AID_PARAM_NOT_FIND,
|
|
3506
|
+
CAPK_PARAM_NOT_FIND,
|
|
3507
|
+
GET_KERNEL_DATA_FAILED,
|
|
3508
|
+
QPBOC_FDDA_FAILED,
|
|
3509
|
+
PURE_ELE_CASH_CARD_NOT_ALLOW_ONLINE_TRANS,
|
|
3510
|
+
Return:
|
|
3511
|
+
|
|
3512
|
+
Remark:
|
|
3513
|
+
```
|
|
3514
|
+
|
|
3515
|
+
### EMV Callback / onReturnNfcCardData
|
|
3516
|
+
|
|
3517
|
+
- Source section: `2.19`
|
|
3518
|
+
|
|
3519
|
+
- Package/class path: `com.urovo.i9000s.api.emv.EmvNfcKernelApi` / `com.urovo.i9000s.api.emv.EmvListener`
|
|
3520
|
+
|
|
3521
|
+
- Demo reference: `UrovoPosSdkDemo/app/src/main/java/com/urovo/sdk/emv/EmvActivityNew.java`
|
|
3522
|
+
|
|
3523
|
+
|
|
3524
|
+
|
|
3525
|
+
Purpose:
|
|
3526
|
+
ReturncontactlesstransactionTLVdata
|
|
3527
|
+
Hashtable:
|
|
3528
|
+
"KSN" :customformatksn,usuallynotuse
|
|
3529
|
+
|
|
3530
|
+
|
|
3531
|
+
Signature/prototype:
|
|
3532
|
+
```java
|
|
3533
|
+
public void onReturnNfcCardData(Hashtable<String,String>hashtable)
|
|
3534
|
+
```
|
|
3535
|
+
|
|
3536
|
+
|
|
3537
|
+
Parameters:
|
|
3538
|
+
"TRACKDATA" :customformatdata,usuallynotuse
|
|
3539
|
+
"EMVDATA":contactlesstransactionTLVdata
|
|
3540
|
+
"QPBOCTYPE":ifnotsupportQPBOC,itisNULL
|
|
3541
|
+
If0x5A(PAN)isnotreturned,pleaseParsingtag0x57togetPAN,if0x57
|
|
3542
|
+
|
|
3543
|
+
|
|
3544
|
+
Usage notes:
|
|
3545
|
+
is not returned, please check whether it's a mstrip card. For mastercard
|
|
3546
|
+
mstriptheTrack2EquivalentDatawillbesaveattag0x9F6B
|
|
3547
|
+
3.EMV Enum
|
|
3548
|
+
|
|
3549
|
+
|
|
3550
|
+
Source details:
|
|
3551
|
+
```text
|
|
3552
|
+
Declare: public void onReturnNfcCardData(Hashtable<String,String>hashtable)
|
|
3553
|
+
Description: ReturncontactlesstransactionTLVdata
|
|
3554
|
+
Hashtable:
|
|
3555
|
+
"KSN" :customformatksn,usuallynotuse
|
|
3556
|
+
Parameters:
|
|
3557
|
+
"TRACKDATA" :customformatdata,usuallynotuse
|
|
3558
|
+
"EMVDATA":contactlesstransactionTLVdata
|
|
3559
|
+
"QPBOCTYPE":ifnotsupportQPBOC,itisNULL
|
|
3560
|
+
If0x5A(PAN)isnotreturned,pleaseParsingtag0x57togetPAN,if0x57
|
|
3561
|
+
Remark: is not returned, please check whether it's a mstrip card. For mastercard
|
|
3562
|
+
mstriptheTrack2EquivalentDatawillbesaveattag0x9F6B
|
|
3563
|
+
3.EMV Enum
|
|
3564
|
+
```
|
|
3565
|
+
|
|
3566
|
+
### EMV Enum / EmvOption
|
|
3567
|
+
|
|
3568
|
+
- Source section: `3.01`
|
|
3569
|
+
|
|
3570
|
+
|
|
3571
|
+
|
|
3572
|
+
Purpose:
|
|
3573
|
+
public static enum EmvOption
|
|
3574
|
+
|
|
3575
|
+
|
|
3576
|
+
Source details:
|
|
3577
|
+
```text
|
|
3578
|
+
public static enum EmvOption
|
|
3579
|
+
{
|
|
3580
|
+
START, START_WITH_FORCE_ONLINE
|
|
3581
|
+
}
|
|
3582
|
+
```
|
|
3583
|
+
|
|
3584
|
+
### EMV Enum / CheckCardMode
|
|
3585
|
+
|
|
3586
|
+
- Source section: `3.02`
|
|
3587
|
+
|
|
3588
|
+
|
|
3589
|
+
|
|
3590
|
+
Purpose:
|
|
3591
|
+
public static enum CheckCardMode{
|
|
3592
|
+
|
|
3593
|
+
|
|
3594
|
+
Source details:
|
|
3595
|
+
```text
|
|
3596
|
+
public static enum CheckCardMode{
|
|
3597
|
+
SWIPE, INSERT, TAP, SWIPE_OR_INSERT, SWIPE_OR_TAP,
|
|
3598
|
+
INSERT_OR_TAP,
|
|
3599
|
+
SWIPE_OR_INSERT_OR_TAP,
|
|
3600
|
+
}
|
|
3601
|
+
```
|
|
3602
|
+
|
|
3603
|
+
### EMV Enum / CheckCardResult
|
|
3604
|
+
|
|
3605
|
+
- Source section: `3.03`
|
|
3606
|
+
|
|
3607
|
+
|
|
3608
|
+
|
|
3609
|
+
Purpose:
|
|
3610
|
+
public static enum CheckCardResult{
|
|
3611
|
+
|
|
3612
|
+
|
|
3613
|
+
Source details:
|
|
3614
|
+
```text
|
|
3615
|
+
public static enum CheckCardResult{
|
|
3616
|
+
NO_CARD INSERTED_CARD NOT_ICC BAD_SWIPE MSR USE_ICC_CARD
|
|
3617
|
+
, , , , , ,
|
|
3618
|
+
TAP_CARD_DETECTED NEED_FALLBACK TIMEOUT CANCEL DEVICE_BUSY
|
|
3619
|
+
, , , ,
|
|
3620
|
+
}
|
|
3621
|
+
Checkcard result Result description
|
|
3622
|
+
Nocardhasbeendetected,pleasecheck
|
|
3623
|
+
NO_CARD
|
|
3624
|
+
CheckCardMode
|
|
3625
|
+
INSERTED_CARD ICCcardhasbeeninserted
|
|
3626
|
+
NOT_ICC ICCcardreading failed,pleasetryto reinsertcard
|
|
3627
|
+
Magneticstripecardreading failed,pleasetryto
|
|
3628
|
+
BAD_SWIPE
|
|
3629
|
+
re-swipethecard
|
|
3630
|
+
MSR Magneticstripecardreading success
|
|
3631
|
+
USE_ICC_CARD Pleaseinsert ICCcard
|
|
3632
|
+
TAP_CARD_DETECTED Tapcardhasbeendetected
|
|
3633
|
+
NEED_FALLBACK PleaseTaporSwipeCard
|
|
3634
|
+
TIMEOUT Timeout,pleasetryto readcard again
|
|
3635
|
+
Cardreadinghasbeencanceled,pleasetrytoreadcard
|
|
3636
|
+
CANCEL
|
|
3637
|
+
again
|
|
3638
|
+
DEVICE_BUSY Cardreaderisbusy, pleasetryto read cardagain later
|
|
3639
|
+
MULT_CARD Multiplecardsdetected ,Please taponecard
|
|
3640
|
+
```
|
|
3641
|
+
|
|
3642
|
+
### EMV Enum / TransactionResult
|
|
3643
|
+
|
|
3644
|
+
- Source section: `3.04`
|
|
3645
|
+
|
|
3646
|
+
|
|
3647
|
+
|
|
3648
|
+
Purpose:
|
|
3649
|
+
public static enum TransactionResult
|
|
3650
|
+
|
|
3651
|
+
|
|
3652
|
+
Source details:
|
|
3653
|
+
```text
|
|
3654
|
+
public static enum TransactionResult
|
|
3655
|
+
{
|
|
3656
|
+
OFFLINE_APPROVAL,ONLINE_APPROVAL, TERMINATED,
|
|
3657
|
+
OFFLINE_DECLINED,ONLINE_DECLINED, CANCELED, CANCELED_OR_TIMEOUT,
|
|
3658
|
+
CARD_BLOCKED_APP_FAIL, NO_EMV_APPS, ICC_CARD_REMOVED,
|
|
3659
|
+
SELECT_APP_FAIL, INVALID_ICC_DATA,
|
|
3660
|
+
APPLICATION_BLOCKED_APP_FAIL
|
|
3661
|
+
}
|
|
3662
|
+
Transaction result Result description
|
|
3663
|
+
OFFLINE_APPROVAL Offlinerequest hasbeen approved
|
|
3664
|
+
|
|
3665
|
+
ONLINE_APPROVAL Onlinerequesthasbeenapproved
|
|
3666
|
+
TERMINATED Transactionhasbeenterminated
|
|
3667
|
+
OFFLINE_DECLINED Offlinerequest hasbeen rejected
|
|
3668
|
+
ONLINE_DECLINED Onlinerequesthasbeenrejected
|
|
3669
|
+
CANCELED Transactionhasbeencanceled
|
|
3670
|
+
CANCELED_OR_TIMEOUT Transactionhasbeencanceled ortimeout
|
|
3671
|
+
CARD_BLOCKED_APP_FAIL Cardhasbeenblocked
|
|
3672
|
+
NO_EMV_APPS Terminaldoesnot supportapplicationsofcard
|
|
3673
|
+
ICC_CARD_REMOVED ICCcardhasbeenremoved
|
|
3674
|
+
SELECT_APP_FAIL Terminalhasbeenfailto selectapplication ofcard
|
|
3675
|
+
INVALID_ICC_DATA ICCcarddataisinvalid
|
|
3676
|
+
APPLICATION_BLOCKED_APP_FAIL Applicationhasbeenblocked
|
|
3677
|
+
```
|
|
3678
|
+
|
|
3679
|
+
### EMV Enum / DisplayText
|
|
3680
|
+
|
|
3681
|
+
- Source section: `3.05`
|
|
3682
|
+
|
|
3683
|
+
|
|
3684
|
+
|
|
3685
|
+
Purpose:
|
|
3686
|
+
public static enum DisplayText
|
|
3687
|
+
|
|
3688
|
+
|
|
3689
|
+
Source details:
|
|
3690
|
+
```text
|
|
3691
|
+
public static enum DisplayText
|
|
3692
|
+
{
|
|
3693
|
+
USE_MAG_STRIPE,
|
|
3694
|
+
APPROVED_PLEASE_SIGN,//if CVM is Signature
|
|
3695
|
+
}
|
|
3696
|
+
```
|
|
3697
|
+
|
|
3698
|
+
### EMV Enum / PinEntryResult
|
|
3699
|
+
|
|
3700
|
+
- Source section: `3.06`
|
|
3701
|
+
|
|
3702
|
+
|
|
3703
|
+
|
|
3704
|
+
Purpose:
|
|
3705
|
+
public static enum PinEntryResult{
|
|
3706
|
+
|
|
3707
|
+
|
|
3708
|
+
Source details:
|
|
3709
|
+
```text
|
|
3710
|
+
public static enum PinEntryResult{
|
|
3711
|
+
ENTERED, CANCEL, TIMEOUT, BYPASS, WRONG_PIN_LENGTH,
|
|
3712
|
+
INCORRECT_PIN
|
|
3713
|
+
}
|
|
3714
|
+
```
|
|
3715
|
+
|
|
3716
|
+
### EMV Enum / PinEntrySource
|
|
3717
|
+
|
|
3718
|
+
- Source section: `3.07`
|
|
3719
|
+
|
|
3720
|
+
|
|
3721
|
+
|
|
3722
|
+
Purpose:
|
|
3723
|
+
public static enum PinEntrySource{
|
|
3724
|
+
|
|
3725
|
+
|
|
3726
|
+
Source details:
|
|
3727
|
+
```text
|
|
3728
|
+
public static enum PinEntrySource{
|
|
3729
|
+
PHONE, KEYPAD
|
|
3730
|
+
}
|
|
3731
|
+
```
|
|
3732
|
+
|
|
3733
|
+
### EMV Enum / NfcTransResult
|
|
3734
|
+
|
|
3735
|
+
- Source section: `3.08`
|
|
3736
|
+
|
|
3737
|
+
|
|
3738
|
+
|
|
3739
|
+
Purpose:
|
|
3740
|
+
public static enum NfcTransResult{
|
|
3741
|
+
|
|
3742
|
+
|
|
3743
|
+
Source details:
|
|
3744
|
+
```text
|
|
3745
|
+
public static enum NfcTransResult{
|
|
3746
|
+
ONLINE_APPROVAL,
|
|
3747
|
+
DECLINE_ONLINE,
|
|
3748
|
+
TERMINATE,
|
|
3749
|
+
OFFLINE_APPROVAL,
|
|
3750
|
+
OTHER_INTERFACES,
|
|
3751
|
+
RETRY,
|
|
3752
|
+
CARD_REMOVED,
|
|
3753
|
+
ISSUER_SCRIPT_UPDATE_SUCCESSFUL, //8
|
|
3754
|
+
ISSUER_SCRIPT_UPDATE_FAILED, //9
|
|
3755
|
+
DECLINE_OFFLINE}
|
|
3756
|
+
```
|
|
3757
|
+
|
|
3758
|
+
### EMV Enum / NfcTipMessageID
|
|
3759
|
+
|
|
3760
|
+
- Source section: `3.09`
|
|
3761
|
+
|
|
3762
|
+
|
|
3763
|
+
|
|
3764
|
+
Purpose:
|
|
3765
|
+
publicstaticenumNfcTipMessageID
|
|
3766
|
+
|
|
3767
|
+
|
|
3768
|
+
Source details:
|
|
3769
|
+
```text
|
|
3770
|
+
publicstaticenumNfcTipMessageID
|
|
3771
|
+
{
|
|
3772
|
+
PLS_REMOVE_CARD,
|
|
3773
|
+
PLS_USE_CONTACT_IC_CARD,//1
|
|
3774
|
+
NEED_SIGNATURE,//2
|
|
3775
|
+
END_APPLICATION,//3
|
|
3776
|
+
SEE_PHONE_REMOVE_AND_PRESENT_CARD,//4
|
|
3777
|
+
DISPLAY_BALANCE,//5
|
|
3778
|
+
CARD_READ_OK,//6
|
|
3779
|
+
PLS_SECOND_TAP_CARD,//7
|
|
3780
|
+
APPLICATION_BLOCKED,//8
|
|
3781
|
+
TRY_AGAIN_RESENT_CARD,//9
|
|
3782
|
+
USE_MAG_STRIPE,//10
|
|
3783
|
+
INSERT_SWIPE_OR_TRY_ANOTHER_CARD,//11
|
|
3784
|
+
TERMINATE,
|
|
3785
|
+
CARD_ERROR,
|
|
3786
|
+
PROCESSING_ERROR,
|
|
3787
|
+
UNKNOW
|
|
3788
|
+
}
|
|
3789
|
+
```
|
|
3790
|
+
|
|
3791
|
+
### EMV Enum / NfcErrMessageID
|
|
3792
|
+
|
|
3793
|
+
- Source section: `3.10`
|
|
3794
|
+
|
|
3795
|
+
|
|
3796
|
+
|
|
3797
|
+
Purpose:
|
|
3798
|
+
publicstaticenumNfcErrMessageID
|
|
3799
|
+
|
|
3800
|
+
|
|
3801
|
+
Source details:
|
|
3802
|
+
```text
|
|
3803
|
+
publicstaticenumNfcErrMessageID
|
|
3804
|
+
{
|
|
3805
|
+
ERR_LOAD_CALLBACK,//0
|
|
3806
|
+
ICS_PARAM_NOT_FIND,//needupdateterminalparamters
|
|
3807
|
+
KERNEL_ERR,
|
|
3808
|
+
ERR_PIN_LENTH,
|
|
3809
|
+
ERR_MULT_CARD,
|
|
3810
|
+
ERR_CHECK_CARD,
|
|
3811
|
+
AID_PARAM_NOT_FIND,
|
|
3812
|
+
CAPK_PARAM_NOT_FIND,
|
|
3813
|
+
GET_KERNEL_DATA_FAILED,
|
|
3814
|
+
QPBOC_APPLICATION,//9
|
|
3815
|
+
QPBOC_FDDA_FAILED,
|
|
3816
|
+
PURE_ELE_CASH_CARD_NOT_ALLOW_ONLINE_TRANS,
|
|
3817
|
+
UNKNOW
|
|
3818
|
+
}
|
|
3819
|
+
```
|
|
3820
|
+
|
|
3821
|
+
### EMV Enum / Operation
|
|
3822
|
+
|
|
3823
|
+
- Source section: `3.11`
|
|
3824
|
+
|
|
3825
|
+
|
|
3826
|
+
|
|
3827
|
+
Purpose:
|
|
3828
|
+
publicstaticenumOperation
|
|
3829
|
+
|
|
3830
|
+
|
|
3831
|
+
Source details:
|
|
3832
|
+
```text
|
|
3833
|
+
publicstaticenumOperation
|
|
3834
|
+
{
|
|
3835
|
+
CLEAR, //clearcontactandcontactlessAID
|
|
3836
|
+
ADD,
|
|
3837
|
+
CLEAR_EMV_AID,//onlyclearcontactAID
|
|
3838
|
+
CLEAR_NFC_AID//onlyclearcontactlessAID
|
|
3839
|
+
}
|
|
3840
|
+
4.Appendix
|
|
3841
|
+
```
|
|
3842
|
+
|
|
3843
|
+
### EMV Appendix / CVM processing FAQ
|
|
3844
|
+
|
|
3845
|
+
- Source section: `4.1`
|
|
3846
|
+
|
|
3847
|
+
|
|
3848
|
+
|
|
3849
|
+
Purpose:
|
|
3850
|
+
Q1:Howto handleOnlinePINverification?
|
|
3851
|
+
|
|
3852
|
+
|
|
3853
|
+
Source details:
|
|
3854
|
+
```text
|
|
3855
|
+
Q1:Howto handleOnlinePINverification?
|
|
3856
|
+
Trigger: The EMV kernel invokes the onRequestPinEntry() callback when cardholder PIN
|
|
3857
|
+
verificationisrequired.
|
|
3858
|
+
ApplicationResponse:CallgetPinBlock()orgetPinBlockEx()(refertodeviceSDK)tolaunchthe
|
|
3859
|
+
PINentryinterface.
|
|
3860
|
+
UserActionHandling:
|
|
3861
|
+
|
|
3862
|
+
Success:CallmEmvApi.sendPinEntry()toconfirmPINsubmission.
|
|
3863
|
+
Cancellation:CallmEmvApi.cancelPinEntry()iftheuserabortsinput.
|
|
3864
|
+
Skip(ifallowed):CallmEmvApi.bypassPinEntry()forscenariosbypassingPINvalidation.
|
|
3865
|
+
Q2:Howdoes EMVthe kernel handleofflineplainPin andofflineencrypt pin?
|
|
3866
|
+
TheEMVkernelhandlesPINentryandverificationautomaticallyviathePINpad.
|
|
3867
|
+
Noapplicationinterventionrequired(Trytestwithsampleapplication).
|
|
3868
|
+
Q2:Howiscardholdersignaturetriggered inEMVtransactions?
|
|
3869
|
+
The EMV kernel requests signature verification by invoking
|
|
3870
|
+
onRequestDisplayText(ContantPara.DisplayText.APPROVED_PLEASE_SIGN) with parameter
|
|
3871
|
+
ContantPara.DisplayText.APPROVED_PLEASE_SIGN
|
|
3872
|
+
```
|
|
3873
|
+
|
|
3874
|
+
### EMV Appendix / EMV kernel using FAQ
|
|
3875
|
+
|
|
3876
|
+
- Source section: `4.2`
|
|
3877
|
+
|
|
3878
|
+
|
|
3879
|
+
|
|
3880
|
+
Purpose:
|
|
3881
|
+
Q1:MissingPAN(Tag 0x5A) -Howto Fallback?
|
|
3882
|
+
|
|
3883
|
+
|
|
3884
|
+
Source details:
|
|
3885
|
+
```text
|
|
3886
|
+
Q1:MissingPAN(Tag 0x5A) -Howto Fallback?
|
|
3887
|
+
if0x5Anotreturn,needuse0x57datatogetPAN.
|
|
3888
|
+
Q2:Howto Debug EMV(Contact/UPI) andNFC Issues?
|
|
3889
|
+
1. EnableLogging:CallLogOutEnable()API(activatesbothEMV&NFClogs).
|
|
3890
|
+
2. PullLogsSeparately:PulllogsviaADB.
|
|
3891
|
+
1. # For EMV (Contact/UPI) issues
|
|
3892
|
+
2. adb pull /data/data/com.urovo.demos/files/UROPE/Trace.txt
|
|
3893
|
+
3.
|
|
3894
|
+
```
|
|
3895
|
+
|
|
3896
|
+
### EMV Appendix / # For NFC (Contactless) issues
|
|
3897
|
+
|
|
3898
|
+
- Source section: `4.3`
|
|
3899
|
+
|
|
3900
|
+
|
|
3901
|
+
|
|
3902
|
+
Purpose:
|
|
3903
|
+
5. adb pull /data/data/com.urovo.demos/files/UROPE/TraceCL.txt
|
|
3904
|
+
|
|
3905
|
+
|
|
3906
|
+
Source details:
|
|
3907
|
+
```text
|
|
3908
|
+
5. adb pull /data/data/com.urovo.demos/files/UROPE/TraceCL.txt
|
|
3909
|
+
Q3: OfflinePIN fails onAndroid5.1/6.0?
|
|
3910
|
+
Fix:CallsetContext(MainActivity.this)beforetransaction.
|
|
3911
|
+
```
|
|
3912
|
+
|
|
3913
|
+
### EMV Appendix / Contact
|
|
3914
|
+
|
|
3915
|
+
- Source section: `4.2`
|
|
3916
|
+
|
|
3917
|
+
|
|
3918
|
+
|
|
3919
|
+
Purpose:
|
|
3920
|
+
if you have any issue , please contact Xiray or Ron, xiaofeng.xia@urovo.com,
|
|
3921
|
+
|
|
3922
|
+
|
|
3923
|
+
Source details:
|
|
3924
|
+
```text
|
|
3925
|
+
if you have any issue , please contact Xiray or Ron, xiaofeng.xia@urovo.com,
|
|
3926
|
+
an.luo@urovo.com ,wewill help you.
|
|
3927
|
+
```
|