[go: up one dir, main page]

0% found this document useful (0 votes)
24 views26 pages

EMV API en

Uploaded by

kjacone
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views26 pages

EMV API en

Uploaded by

kjacone
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

Shenzhen ZCS Technology Co.

, Ltd EMV Interface Description

EMV
Interface Description

Shenzhen ZCS Technology Co., Ltd

1
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

版本修订历史记录:
版本号 作者 参与者 发布日期 Remarks
V1.0 罗成 2018-4-13 初始版本

2
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

目录
1.​ EMV transaction flow chart.......................................................................................................4
2.​ EMV Class................................................................................................................................. 5
2.1.​ Get the EMV kernel version number......................................................................... 5
2.2.​ Delete all AIDs.......................................................................................................... 5
2.3.​ Delete all CAPKs.......................................................................................................5
2.4.​ Get the total number of AIDs.....................................................................................6
2.5.​ Get the total number of Capks................................................................................... 6
2.6.​ Get an AID based on the index number.....................................................................7
2.7.​ Get an Capk based on the index number........................................................... 7
2.8.​ Append an AID.......................................................................................................... 7
2.9.​ Append an AID.......................................................................................................... 8
2.10.​ Append an Capk.........................................................................................................8
2.11.​ Append an Capk.........................................................................................................9
2.12.​ Get the value of the tag from the kernel............................................................ 10
2.13.​ Set the value of the tag to the kernel......................................................10
2.14.​ Get the value of the tag from the kernel and package the data in TLV format........ 11
2.15.​ Packing data in TLV format according to tag and value..........................................11
2.16.​ Pack TLV list data....................................................................................................12
2.17.​ Find the value of the specified TAG based on the TLV list data............................. 12
2.18.​ EMV kernel initialization........................................................................................ 13
2.19.​ Contactless transaction preprocessing..................................................................... 13
2.20.​ Perform EMV transactions (including contactless transactions)............................. 13
2.21.​ Balance inquiry........................................................................................................ 14
2.22.​ Read transaction log.................................................................................................15
2.23.​ Get track 2 equivalent data and Application primary account number(PAN)......... 16
2.24.​ Get CVM type (contactless).....................................................................................17
2.25.​ Setting PIN BLOCK to the kernel........................................................................... 17
2.26.​ Parsing online response data....................................................................................18
3.​ OnEmvListener Callback class................................................................................................ 20
3.1.​ Sending and receiving APDU callback....................................................................20
3.2.​ Select application callback.......................................................................................20
3.3.​ Confirm PAN callback............................................................................................. 21
3.4.​ Enter PIN callback................................................................................................... 22
3.5.​ Cardholder ID verification callback.........................................................................23
3.6.​ Online processing callback...................................................................................... 24
4.​ Annex.......................................................................................................................................26
4.1.​ Terminal parameter class......................................................................................... 26
4.1.​ Transaction parameter class..................................................................................... 27
4.2.​ AID parameter class.................................................................................................27
4.3.​ CAPK parameter class............................................................................................. 28
4.4.​ Transaction log class................................................................................................28
4.5.​ EMV Result Class....................................................................................................29

3
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

1.​EMV transaction flow chart

4
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

2.​EMV Class

Get the object of the EMV class:


EmvHandler emvHandler = EmvHandler.getInstance();

2.1.​ Get the EMV kernel version number

Method public String getKernelVersion()


Description Get the EMV kernel version number
Input
Output
Return EMV kernel version number

Stuct
Remarks

2.2.​ Delete all AIDs

Method public void delAllApp()


Description Delete all AIDs
Input
Output
Return
Stuct
Remarks
Example

2.3.​ Delete all CAPKs

Method public void delAllCapk()


Description Delete all CAPKs
Input

Output

5
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

Return

Stuct
Remarks
Example

2.4.​ Get the total number of AIDs

Method public int getAppNum()


Description Get the total number of AIDs
Input
Output
Return total number of AIDs

Stuct
Remarks
Example

2.5.​ Get the total number of Capks

Method public int getAppCapk()


Description Get the total number of Capks
Input
Output
Return total number of Capks

Stuct
Remarks
Example

2.6.​ Get an AID based on the index number

Method public byte[] getApp(int index)


Description Get an AID based on the index number
Input index Index (starting at 0)

6
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

Output
Return A string of AID data in TLV format
=null, get error
Stuct
Remarks

2.7.​ Get an Capk based on the index number


Method public byte[] getCapk(int index)
Description Get an AID based on the index number
Input index Index (starting at 0)

Output
Return A string of Capk data in TLV format
=null, get error
Stuct
Example

2.8.​ Append an AID

Method public int addApp(byte[] aid)


Description Append an AID
Input aid Example:
emvHandler.addApp(emvHandler
.hexStringToBytes("9F0607A0000000
043060DF0101009F08020002DF1105
FC5058A000DF1205F85058F800DF1
30504000000009F1B0400000000DF1
50400000000DF160199DF170199DF1
4039F3704DF180101DF20060009999
99999"));
Output
Return

Stuct
Remarks

7
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

2.9.​ Append an AID

Method public int addApp(EmvApp emvApp)


Description Append an AID
Input emvApp EmvApp Object

Output
Return

Stuct
Remarks

2.10.​Append an Capk

Method public int addCapk(byte[] capk)


Description Append an Capk
Input capk Example:
emvHandler.addApp(emvHandler .
hexStringToBytes
("9F0605A0000000659F220109DF050
83230303931323331DF060101DF070
101DF028180B72A8FEF5B27F2B550
398FDCC256F714BAD497FF56094B
7408328CB626AA6F0E6A9DF8388E
B9887BC930170BCC1213E90FC070
D52C8DCD0FF9E10FAD36801FE93
FC998A721705091F18BC7C98241C
ADC15A2B9DA7FB963142C0AB640
D5D0135E77EBAE95AF1B4FEFAD
CF9C012366BDDA0455C1564A6881
0D7127676D493890BDDF040103DF
03144410C6D51C2F83ADFD92528F
A6E38A32DF048D0A")
Output
Return

8
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

Stuct
Remarks
Example

2.11.​Append an Capk

Method public int addCapk(EmvCapk emvCapk)


Description Append an Capk
Input emvCapk Capk object

Output
Return

Stuct
Remarks
Example

2.12.​Get the value of the tag from the kernel


Method public byte[] getTlvData(int tag)
Description Get the value of the tag from the kernel
Input tag tag, Common EMV transaction tags:
0x95 TVR
0x9B TSI
0x9F34 CVM Results
0xDF31 Issuer Script Result
0x57 Track 2 Equivalent Data
0x5F34 PAN Sequence Number
0x5A PAN
0x5F24 Application Expiration Data
0x8A Authorisation Response Code
Output
Return Get the value of the tag

9
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

=null, get error


Stuct
Remarks
Example

2.13.​Set the value of the tag to the kernel

Method public int setTlvData(int tag,byte[] value)


Description Set the value of the tag to the kernel
Input tag tag

value value

Output
Return The value of the EmvResult object

Stuct
Remarks
Example

2.14.​Get the value of the tag from the kernel


and package the data in TLV format.

Method public byte[] packageTlvFormKernel(int tag)


Description Get the value of the tag from the kernel and package the data in TLV format.
Input tag tag

Output
Return TLV format data
=null, get error
Stuct
Remarks
Example

10
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

2.15.​Packing data in TLV format according to


tag and value

Method public byte[] packageTlv(int tag,byte[] value)


Description Packing data in TLV format according to tag and value
Input tag tag

value value

Output TLV format data

Return

Stuct
Remarks
Example

2.16.​Pack TLV list data

Method public byte[] packageTlvList(int[] tags)


Description Pack TLV list data, such as 55 domain data, according to the tag array
Input tags Tag array
Output
Return TLV list data, such as 55 domain data

Stuct
Remarks
Example

2.17.​Find the value of the specified TAG


based on the TLV list data

Method public byte[] findTagValue(byte[] tlvList,int findTag)


Description Find the value of the specified TAG based on the TLV list data
tlvList TLV list data, such as 55 domain return
Input data
findTag tag

11
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

Output
Tag value,
Return
=null, not found or parsed error
Stuct
Remarks
Example

2.18.​EMV kernel initialization

Method public void kernelInit(EmvTermParam emvTermparam)


Description EMV kernel initialization
Input emvTermparam Terminal parameter

Output
Return
Stuct
Remarks

2.19.​Contactless transaction preprocessing

Method public int qTransProProc(byte[] amountAuth)


Description Contactless transaction pre-processing, executed after inputting the amount
(executed only in the fast payment interface)
Input amountAuth Amount of the transaction

Output
Return The value of the EmvResult object

Stuct
Remarks
Example

2.20.​Perform EMV transactions (including


contactless transactions)

public int emvTrans(EmvTransParam


Method
emvTransParam,OnEmvListener emvListener,byte[] isEcTrans,

12
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

byte[] balance, byte[] transResult)


Description Perform EMV transactions (including contactless transactions)
emvTransParam Transaction parameters
Input
emvListener EMV callback class
When isEcTrans[0]=0x01, it is an
electronic cash transaction (including
contact and contactless)
isEcTrans
When isEcTrans[0]=0x00, it is an Emv
transaction (including contact and
contactless)
Balance, BCD code, 6 bytes, when

Output balance balance[0] = 0x01, no balance is


obtained
The result of the transaction, returned
in transResult[0], is the value of the
EmvData object
transResult Public static final byte APPROVE_M
= 0x40; //Approve
Public static final byte DECLINE_M
= 0x00; //Declined
Return The value of the EmvResult object

Stuct
Remarks
Example

2.21.​Balance inquiry

Method public int balanceQuery(int transKernalType,OnEmvListener


emvListener,byte[] balance)
Description Balance inquiry,Contact and contactless electronic cash
Input transKernalType The transaction kernel type, the
following values for the EmvData
object:
Public static final byte
KERNAL_EMV_PBOC = 0; //Contact
EMV&PBOC
Public static final byte
KERNAL_CONTACTLESS_ENTRY_
POINT = 1; //contactless to the unified
entry
13
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

emvListener Emv callback class

Output balance Balance, BCD code, 6 bytes, when


balance[0] = 0x01, no balance is
obtained
Return The value of the EmvResult object

Stuct
Remarks
Example

2.22.​Read transaction log

Method public int readTransLog(int transKernalType,OnEmvListener


emvListener,byte[] transLogNum,EmvTransLog[] emvTransLog)
Description Read transaction log,Emv and contactless
Input transKernalType The transaction kernel type, the
following values for the EmvData
object:
Public static final byte
KERNAL_EMV_PBOC = 0; //Contact
EMV&PBOC
Public static final byte
KERNAL_CONTACTLESS_ENTRY_
POINT = 1; //contactless to the unified
entry
emvListener Emv callback class

Output transLogNum The number of transaction logs,


returned in transLogNum[0]
emvTransLog An array of transaction log objects.
The size of the array is preferably 10
when defined.
Return The value of the EmvResult object

Stuct
Remarks
Example

14
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

2.23.​Get track 2 equivalent data and


Application primary account number(PAN)

Method public int getTrack2AndPAN(String[] track2,String[] pan)


Description Get track 2 equivalent data and Application primary account number(PAN)
EMV/PBOC transactions are obtained (confirmed PAN and later process)
Contactless transaction is obtained when the offline execution is completed or
returned to the online input PIN.
Input
Output track2 Track 2 data, the data is returned in
track2[0]
pan PAN, data is returned in pan[0]

Return The value of the EmvResult object

Stuct
Remarks
Example

2.24.​Get CVM type (contactless)

Method public byte getCvmType()


Description Get the CVM type for the contactless transaction result to be online, get the
execution type of CVM
Input
Output
Return the following values for the EmvData
object:​

public static final byte


RD_CVM_NO ​ ​ ​
​ ​ = 0x00;
//NO CVM
​ public static final
byte RD_CVM_ONLINE_PIN ​

15
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

​ = (byte)0x80;
//ONLINE PIN
​ public static final
byte RD_CVM_SIG ​ ​
​ ​ = 0x40;
//SIGNATURE
Stuct
Remarks
Example

2.25.​Setting PIN BLOCK to the kernel

Method public void setPinBlock(byte[] pinBlock)


Description Setting PIN BLOCK to the kernel
Input pinBlock 8 bytes PIN BLOCK
Output
Return
Stuct
Remarks
Example

2.26.​Parsing online response data

public int separateOnlineResp(byte[] authRespCode,byte[]


Method
issuerResp,int issuerRespLen)
Description Parsing online response data
39 domain response code (if the
authorization code is {0x30, 0x30},
authRespCode please set authRespCode={0x30, 0x30,
Input 0x00}; if there is no response code,
please set authRespCode= {0x00})
issuerResp Issuer response data, 55 domain

16
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

issuerRespLen Issuer response data length

Output
The following values for the
EmvResult object:
Public static final int EMV_OK = 0;
//OK
Public static final int
EMV_ONLINE_FAILED = -20;
Return //Unsuccessful online connection failed
Public static final int
EMV_ONLINE_NORESP_MAC_OR
_RECV_ERR = -38; // Online
unsuccessful, no response online or
return MAC error or receive data error,
correct
Stuct
Remarks
Example

17
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

3.​OnEmvListener Callback class

Get the object of the OnEmvListener class:


OnEmvListener onEmvListener = new OnEmvListener() {
//……
}

3.1.​ Sending and receiving APDU callback

Method byte[] onExchangeApdu(byte[] send);

Description Sending and receiving APDU


This method is called back only when the EMV terminal
parameter and the kernel initialize kernelInit(), setting
EmvTermParam.useCallbackApdu to 0x01 (using the callback
function to send and receive APDUs).

Input send APDU command sent

Output
Return The APDU data of the response,
Return null if communication error or
no response or response timeout
Stuct
Remarks

3.2.​ Select application callback

Method int onSelApp(String[] appLabelList);


Description Select the app list,
EMV/PBOC transactions, which are executed when there are
multiple applications;
Contactlss do not execute this callback

Input appLabelList Application Label array

Output
Return Public static final int EMV_OK = 0;

18
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

//OK
Public static final int
EMV_USER_CANCEL = -7;
//transaction cancellation
Public static final int
EMV_TIME_OUT = -8; //user
operation timed out
Stuct
Remarks

3.3.​ Confirm PAN callback

Method int onConfirmCardNo(String cardNo);


Description Confirm the PAN,
EMV/PBOC transaction, callback when the card number is obtained when the
application record is completed;
Contactless do not execute this callback
Input cardNo PAN

Output
Return Public static final int EMV_OK = 0;
//OK
Public static final int
EMV_USER_CANCEL = -7;
//transaction cancellation
Public static final int
EMV_TIME_OUT = -8; //user
operation timed out

Stuct
Remarks

3.4.​ Enter PIN callback

Method int onInputPIN(byte pinType);


Description Enter the PIN ,

19
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

Need to adjust the input online PIN, call setPinBlock () method to set the PIN
BLOCK to the kernel;
If it is contactless transaction, if you want to enter a PIN, you need to call
getTrack2AndPAN() to get PAN;
If it is a contactless transaction, you need to call getCvmType() to get the
cardholder authentication type as online PIN (EmvData.
RD_CVM_ONLINE_PIN) to execute the input online PIN. If you want to force the
online PIN, you do not need to judge this.
Input pinType PIN type:
The following values for the EmvData
object:
​ public static final byte
ONLINE_ENCIPHERED_PIN =
0x00;
​ public static final byte
OFFLINE_PLAINTEXT_PIN =
0x01;
​ public static final byte
OFFLINE_ENCIPHERED_PIN =
0x02;

Output
Return The following values for the The
following values for the EmvResult
object:
Public static final int EMV_OK = 0;
//OK
Public static final int
EMV_USER_CANCEL = -7;
//transaction cancellation
Public static final int
EMV_TIME_OUT = -8; //user
operation timed out
Public static final int
EMV_NO_PASSWORD = -32; //No
password or no password
Stuct
Remarks

20
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

3.5.​ Cardholder ID verification callback

Method int onCertVerify(int certType,String certNo);


Description Cardholder ID verification ,
EMV/PBOC transactions, verifying callbacks when cardholder credentials need to
be executed;
Contactless do not execute this callback
Input certType ID type (0~5), corresponding to the
following values
0x00: ID card
0x01: Military officer card
0x02: Passport
0x03: Entry permit
0x04: Temporary ID card
0x05: Other
certNo Certificate number

Output
Return The following values for the
EmvResult object:
Public static final int EMV_OK = 0;
//OK
Public static final int
EMV_USER_CANCEL = -7;
//transaction cancellation
Public static final int
EMV_TIME_OUT = -8; //user
operation timed out
Stuct
Remarks

3.6.​ Online processing callback

Method int onlineProc();


Description Online processing,
When returning the issuer data online, you need to call the separateOnlineResp()
method to update the issuer data to the kernel for processing.

21
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

If the connection is successful, the issuing bank authorization response code [8A]
returns the rejection, please return to EMV_ONLINE_RESP_AAC;
Input
Output
Return The following values for the
EmvResult object:
Public static final int EMV_OK
= 0; //OK
Public static final int
EMV_ONLINE_FAILED = -20;
//Unsuccessful online
connection failed
Public static final int
EMV_ONLINE_NORESP_MAC_OR_RECV_
ERR = -38; // Online
unsuccessful, no response
online or return MAC error or
receive data error, correct
Public static final int
EMV_ONLINE_RESP_AAC = -40;
//Online success, online
authorization response code
returns rejection

Stuct
Remarks

22
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

4.​Annex

4.1.​ Terminal parameter class

public class EmvTermParam


{
​ public static String ifd = "12345678"; ​ //9F1E
​ public static String terminalCountry = "0156"; ​ ​
//9F1A
​ public static byte termType = 0x22;​ ​ ​ ​ ​
​ //9F35
​ public static String termCapa = "E0E9C8"; //9F33 PBOC:"E0E9C8"
EMV:"E0F8C8"
​ public static String addTermCapa = "6000F0A001"; ​ //9F40

​ public static String merchantNameLocation = "SZZCS";​​ //9F4E
max:40byte
​ public static String merchantCode = "3031"; ​ ​
//9F15
​ public static String merchantID = "123456789012345"; //9F16
max:15byte
​ public static String acquirerID = "1234567890"; ​ ​
//9F01
​ public static String termID = "12345678"; ​ //9F1C
max:8byte
​ public static byte tranRefCurrExp = 0x02;;​ ​ ​ ​
//9F3D =
​ public static String tranRefCurr = "0156";​ ​ ​ ​
​ //9F3C
​ public static byte tranCurrExp = 0x02;​ ​ ​ ​ ​
//5F36
​ public static String tranCurrCode = "0156";​ ​ ​ ​
​ //5F2A
​ public static byte hostType = 0x00;​ ​ ​ ​ ​

​ public static byte termSMSupportIndicator = 0x00;​ ​ ​
​ public static byte termFLmtFlg = 0x01; ​ ​ ​ ​
​ //Terminal Floor Limit flag 9F1B (qPBOC is generally 1) =0 no check,
=1 check
​ public static byte rfTxnLmtFlg = 0x01;​ ​ ​ ​ ​
​ //Reader Contactless Transaction Limit flag DF20(qPBOC is generally
1) =0 no check, =1 check
​ public static byte rfFLmtFlg = 0x01;​ ​ ​ ​ ​
​ //Reader Contactless Floor Limit flag DF19(qPBOC is generally 1) =0
no check, =1 check
​ public static byte rfCVMLmtFlg = 0x01; ​ ​ ​ ​
​ //Reader CVM Required Limit flag DF21(qPBOC is generally 1) =0 no
check, =1 check
​ public static byte rfStatusCheckFlg = 0x00; ​ ​ ​
​ //Status Check Support flag(qPBOC is generally 0) =1 If the
authorized amount is 1, then 9F66 requires online ciphertext
​ public static byte rfZeroAmtNoAllowed = 0x01; ​​ //Zero
Amount Allowed flag(qPBOC is generally 0) =0 no check, 1 check if the
23
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

authorized amount is 0, then 9F66 requires online ciphertext


​ public static byte printfDebugInfo = 0x01; ​ ​
//show debug =0x0 do not show =0x01 show
​ public static byte useFangba = 0x00; ​ ​ //
​ public static byte emvTest = 0x00; ​ ​
//function =0x00unionPay, =0x01EMV, =0x02PBOC, =0x03qPBOC,
=0x04qUICS,=0x05PayWare,=0x06PayPass
​ public static byte useCallBackApdu = 0x00; ​ ​
//Callback APDU =0Not enabled =1enabled
​ public static String emvParamFilePath =
Environment.getExternalStorageDirectory().getPath()+"/emv/";//EMV parameter
file path
}

1.1.​ Transaction parameter class

public class EmvTransParam {


​ private byte transKernalType = 0x00; ​ ​ ​ ​ ​
​ // ​ ​ kernel type(=0 EMV/PBOC, =1 contactless)
​ private byte terminalSupportIndicator = 0x00;​ ​ ​
​ private byte isForceOnline = 0x00; ​ ​ ​
​ // ​ Whether to force online, =1 yes =0 no
​ private byte isSimpleFlow = 0x00; ​ ​ ​
​ // For EMV/PBOC, =0 complete process, =1 simple process (only go
to read record)
​ private String readerTTQ = "26000080"; ​ ​ ​ ​
//9F66 ​
​ private String transNo = "00000001"; ​ ​ ​ ​
​ //9F41
​ private String transDate = DateToStr(new Date(), "yyMMdd"); //9A
YYMMDD
​ private String transTime = DateToStr(new Date(), "HHmmss"); //9F21

​ private String amountAuth = "000000000001"; ​ ​ ​
//9F02
​ private String amountOther = "000000000000"; ​ ​ ​
//9F03 ​ ​
​ private byte transType; ​ ​ ​ ​
​ //9C
​ }

1.2.​ AID parameter class

public class EmvApp {


​ private String aid;​​ ​ ​ //9F06 HEX string
​ private byte selFlag; ​ ​ ​ //DF01 (=0 partial match, =1
exact match)
​ private byte targetPer; ​ ​ //DF17
​ private byte maxTargetPer; ​ ​ //DF16
​ private int floorLimit; ​ ​ //9F1B HEX
​ private byte onLinePINFlag; //DF18 (=0 not supported, =1 support)
​ private int threshold; ​ ​ ​ //DF15
​ private String tacDefault; ​ ​ //DF11 HEX string
​ private String tacDenial; ​​ //DF13 HEX string
​ private String tacOnline; ​​ //DF12 HEX string
24
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

​ private String dDOL; ​ ​ ​ //DF14 HEX string


​ private String tDOL; ​ ​ ​ //97 HEX string
​ private String version; ​ ​ //9F09 HEX string
​ private String clTransLimit;​ //DF20 HEX string(6byte)
​ private String clOfflineLimit;​ //DF19 HEX string(6byte)
​ private String clCVMLimit;​​ //DF21 HEX string(6byte)
​ private String ecTTLVal;​ ​ //9F7B HEX string(6byte)
}

1.3.​ CAPK parameter class

public class EmvCapk {


​ private String rid; ​ ​ //9F06
​ private byte keyID; ​ ​ //9F22
​ private byte hashIndicator; //DF06
​ private byte capkIndicator; //DF07
​ private String modul; ​ ​ //DF02 HEX String
​ private String exponent; ​ //DF04 HEX String
​ private String expDate; ​ //DF05 HEX String(yyyymmdd)
​ private String checkSum; ​ //DF03 HEX String sha1
}

1.4.​ Transaction log class

public class EmvTransLog {


​ private String cardAMT;//0x9F02 HEX string(6byte)
​ private String otherAMT;// 0x9F03 HEX string(6byte)
​ private String cardATC;// 9F36 HEX string
​ private byte transType;// 9C
​ private String termCountry;// 9F1A HEX string
​ private String transCurrency;// 5F2A HEX string
​ private String transDate;// 9A HEX string(YYMMDD)
​ private String transTime;// 9F21 HEX string(HHMMSS)
​ private String merchantName;// 9F4E HEX String format.
}

1.5.​ EMV Result Class

package com.zcs.sdk.emv;

25
Shenzhen ZCS Technology Co., Ltd EMV Interface Description

public class EmvResult {


​ public static final int EMV_OK​ ​ ​ = 0;
​ public static final int ICC_CMD_ERR = -1;
​ public static final int EMV_PARAM_ERR = -2;
​ public static final int ICC_BLOCK = -3;
​ public static final int ICC_RSP_ERR = -4;
​ public static final int EMV_APP_BLOCK = -5;
​ public static final int EMV_NO_APP = -6;
​ public static final int EMV_USER_CANCEL = -7;
​ public static final int EMV_TIME_OUT = -8;
​ public static final int EMV_DATA_ERR = -9;
​ public static final int EMV_NOT_ACCEPT = -10;
​ public static final int EMV_KEY_EXP = -12;
​ public static final int EMV_DATETIME_ERR = -13;
​ public static final int EMV_FILE_ERR = -14;
​ public static final int EMV_SUM_ERR = -15;
​ public static final int EMV_NOT_FOUND = -16;
​ public static final int EMV_DATA_AUTH_FAIL = -17;
​ public static final int EMV_NOT_MATCH = -18;
​ public static final int EMV_NO_TRANS_LOG = -19;
​ public static final int EMV_ONLINE_FAILED = -20;
​ public static final int EMV_NOT_ORG_ICC = -21;
​ public static final int ICC_RSP_6985 = -22;
​ public static final int EMV_EXCP_FILE = -23;
​ public static final int EMV_USE_CONTACT ​ ​ = -24;
​ public static final int EMV_CARD_EXPIRED = -25;
​ public static final int EMV_TERMINATE ​ ​ = -26;
​ public static final int EMV_BALANCE_ERR ​ ​ = -27;
​ public static final int EMV_NOT_PAY ​​ = -28;
​ public static final int EMV_ALREADY_PAY ​ ​ = -29;
​ public static final int EMV_BALANCE_NOT_ENOUGH ​ = -30;
​ public static final int EMV_DECLINE = -31;
​ public static final int EMV_NO_PASSWORD = -32;
​ public static final int EMV_FANGBA = -33;
​ public static final int EMV_NO_PINPAD_OR_ERR = -34;
​ public static final int EMV_NOT_QPBOC = -35;
​ public static final int EMV_NOT_SUPPORT = -36;
​ public static final int ICC_RSP_6986 ​ = -37;
​ public static final int EMV_ONLINE_NORESP_MAC_OR_RECV_ERR = -38;
​ public static final int EMV_NO_ONLINE = -39;
​ public static final int EMV_ONLINE_RESP_AAC​ ​ ​ = -40;​

​ public static final int EMV_PARSING_ERROR = -73;​ ​
}

26

You might also like