...
tPaymentContext (paymentMW.h)
Code Block | ||||
---|---|---|---|---|
| ||||
typedef struct {
////////////////////////////////////////////////////////////////////
// Information provided by Level3
tAmount *mAmount; // EMV Tag 9F02 = "Amount, Authorized" + "Amount, Other"
tAmount *mCashBack; // EMV Tag 9F03 = "Amount, Other"
tTransactionType mTransactionType; // EMV Tag 9C
tNumericDate mTransactionDate[3]; // EMV Tag 9A
tNumericDate mTransactionTime[3]; // EMV Tag 9F21
tByte mMerchantCustomData[20]; // EMV Tag 9F7C
tByte mTransactionCurrencyCode[2]; // EMV Tag 5F2A
tByte mTransactionCurrencyExponent; // EMV Tag 5F36
tByte mTransactionCategoryCode; // EMV Tag 9F53
tByte mMerchantCategoryCode[2]; // EMV Tag 9F15
tByte mMerchantID[15]; // EMV Tag 9F16
tBoolean mForcedOnline; // As per merchant decision
char mWorkingPath[2*MAX_NAME_LENGTH];
////////////////////////////////////////////////////////////////////
// Information set by Payment System
tBoolean mEMVContact; // by configuration (terminal)
tBoolean mEMVContactless; // by configuration (terminal)
tBoolean mMagstripe; // by configuration (terminal)
tAmount mAmountReferenceCurrency; // EMV Tag 9F3A - not used yet
tByte mTransactionReferenceCurrencyCode[2]; // EMV Tag 9F3C - not used yet
tByte mTransactionReferenceCurrencyExponent; // EMV Tag 9F3D - not used yet
tByte mTerminalRiskManagementData[8]; // EMV Tag 9F1D - not used yet
tAccountType mAccountType; // EMV Tag 5F57 - payment application specific
tByte mPOSEntryMode; // EMV Tag 9F39 - payment application specific
tCounter mTransactionSequenceCounter;
tARC mARC; //Authorization Response Code, eg mapping from Issuer's Response Code (ISO8583:DE39)
tBoolean mUnableToGoOnline;
////////////////////////////////////////////////////////////////////
// Information set by Payment Application (from Agnos primitives)
tByte mRID[RID_LENGTH];
tADF mADF;
tByte mADFOrderNumber; // For a given configuration, AID's order number
tBoolean mAdvice;
tBoolean mBatchData;
tBoolean mReversal;
////////////////////////////////////////////////////////////////////
// Information set by EMV Library
tSessionId mSession;
tByte mCID; // Information used by Level3 to detect transaction's outcome requested by ICC
// CID Bit map (see also EMV4.2 book III section 6.5.5.4)
// b8 b7 b6 b5 b4 b3 b2 b1
// AAC 0 0
// TC 0 1
// ARQC 1 0
// RFU 1 1
// Payment System-specific cryptogram x x
// No advice required 0
// Advice required 1
// Reason/advice code x x x
// No information given 0 0 0
// Service not allowed 0 0 1
// PIN try limit exceeded 0 1 0
// Issuer authentication failed 0 1 1
// Other values RFU 1 x x
//
// Important: terminal shall inspect CID to detect whether transaction requires an advice (when supported by terminal)
// Pls, refer to payment system rules
//
////////////////////////////////////////////////////////////////////
// Information calculated by Level3 once transaction is completed (from paymentMW primitives)
tByte mFinal9F02[6];
tByte mCVMResult[3];
tByte mTVR[5];
tByte mTSI[2];
tByte mAC[8];
tByte mUN[4];
tByte mAID[MAX_AID_LENGTH];
tByte mAIDLen;
tByte mPANSHA[20];
tByte mCardholderNameLen;
tByte mCardholderName[26];
tByte mAgnosTVR[AGNOS_TVR_SIZE];
#ifdef _AGNOSISR_
tBoolean mIsScriptExecuted;
tByte mIssuerScriptResultLen;
tByte mIssuerScriptResult[2*MAX_SCRIPT*sizeof(tScriptResult)];
#endif
////////////////////////////////////////////////////////////////////
// Level3 <-> Level2 communication
tDataExchange mDataExchange;
} tPaymentContext;
|
tDataExchange (dataechng.h)
...