Amadis

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

C Structures

tPaymentContext (paymentMW.h)

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)

tLevel3DataExchange

Callbacks

typedef void (*emvcallback)(void* data)

Primitives

Names

Comments

pmwGetPaymentMiddlewareVersionNumber

pmwGetKernelVersion

pmwInitializePaymentContext

Shall be called before any new transaction

pmwIntializeOutComeParameter

Shall be called before any new transaction

pmwProceedToUniversalFinalSelection

dtmInitializeFromFile

dtmSelectCTKernel

dtmSetData

dtmGetData

dtmSetTransactionalContext

pmwCloseSession

  • No labels