...
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; |
...