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 9 Next »

That level of API is important to be able to run valid test procedures. It provides an interface to Agnos Certification Environement (ACE) through a set of services that corresponds to different test requirements specified by payment networks.

This API is the second level of integration for Agnos Framework. Hence, It is recommended to unit test all the services below outside the execution of a transaction before starting functional tests.

ACE Services

ACE Services

Description

Prerequisites to a Call

aceInitialize

aceSetMode

aceGetMode

aceInitializeCommunication

aceGetRequest

aceSendResponse

aceMsgToACE

aceClearScreen

aceDisplayMessage

aceEmptyKeyPadCache

aceLogAPDU

aceLogAllBatchedAPDU

acePlayBeep

aceGetKey

aceSwitchLED

Switch a LED on ACE

aceOut

aceSendAdvancedDisplayAsOutcome

aceSendAdvancedDisplay

Signals Services

//---------------------------------------------------------
//				SIGNALS (paymenMW.h)
//---------------------------------------------------------
// These services has been implemented only to support certification sessions.

typedef void (*sgnSendOutcome)(tOutComeParameter *outcome);
typedef void (*sgnSendDR)(tPaymentContext *payment);
typedef void (*sgnSendDD)(tPaymentContext *payment);
typedef void (*sgnSendRawDD)(tByte *data, tWord dataLen);
typedef void (*sgnSendDEK)(tPaymentContext *payment, tByte ADPUState, tBoolean sendDataNeeded, tByte* outDET, tWord* lenOutDET);
typedef void (*sgnSendDET)(tPaymentContext *payment);
typedef void (*sgnSendTag)(tPaymentContext *payment);

#ifdef PACKING
#pragma pack(1)
#endif
typedef struct {
	sgnSendOutcome 	mSendOutcomeSignal;
	sgnSendDR		mSendDRSignal;
	sgnSendDD		mSendDDSignal;
	sgnSendRawDD	mSendRawDDSignal;
	sgnSendDEK		mSendDEKSignal;
	sgnSendDET		mSendDETSignal;
	sgnSendTag		mSendTagSignal;
} tSignal;
#pragma pack()

DLLEXPORT void pmwSetSignal(tSignal *signal);
DLLEXPORT void pmwSendOutcome	(tOutComeParameter 	*outcome);
DLLEXPORT void pmwSendDR (tPaymentContext *payment);
DLLEXPORT void pmwSendDD (tPaymentContext *payment);
DLLEXPORT void pmwSendRawDD (tByte *data, tWord dataLen);
DLLEXPORT void pmwSendDEK (tPaymentContext *payment, tByte ADPUState, tBoolean sendDataNeeded, tByte* outDET, tWord* lenOutDET);
DLLEXPORT void pmwSendDET (tPaymentContext *payment);
DLLEXPORT void pmwSendTag (tPaymentContext *payment);

Signals Services

Description

Prerequisites to a Call

aceGetSignal

Get all signals services from ACE in order to set signals callbacks defined in AgnosMW. These signals callbacks are called by Agnos components like AgnosEP and kernels to raise information at ACE level during a transaction

#include "paymentMW.h"

//---------------------------------------------------------
//            setSignals
//---------------------------------------------------------
//  Set Signals used for CL certification
//
//  Visibility: Private
//  Hypothesis: --
//  Reference: --
//
void setSignals()
{
	tBoolean contactless = bTRUE;
	tBoolean signal = bTRUE;
	tSignal signal;

	if(contactless && signal)
		aceGetSignal(&signal);
	else
	{
		signal.mSendOutcomeSignal = 0;
		signal.mSendDRSignal =  0;
		signal.mSendDDSignal =  0;
		signal.mSendRawDDSignal = 0;
		signal.mSendDEKSignal = 0;
		signal.mSendDETSignal = 0;
		signal.mSendTagSignal = 0;
	}

	pmwSetSignal(&signal);
}

aceSendOutcome

Send an Outcome signal to ACE

  • AgnosMW must be initialized from pmwSetSignal (use setSignals available in Kizis)

  • Running mode = pmSDK (default value)

tOutComeParameter outcome;

aceSendOutcome(&outcome);

aceSendDR

Send a Data Record signal to ACE

  • AgnosMW must be initialized from pmwSetSignal (use setSignals available in Kizis)

  • gpiGetFreeRAM must be integrated

  • tPaymentContext mDataExchange.mDataRecord.mStream and tPaymentContext mDataExchange.mDataRecord.mLength must contained TLV data

aceSendDD

Send a Discretionary Data signal to ACE

  • AgnosMW must be initialized from pmwSetSignal (use setSignals available in Kizis)

  • Running mode = pmSDK (default value)

  • gpiGetFreeRAM must be integrated

  • tPaymentContext mDataExchange.mDiscretionaryData.mStream and tPaymentContext mDataExchange.mDiscretionaryData.mLength must contained TLV data

aceSendRawDD

Send a Raw Discretionary Data signal to ACE

  • AgnosMW must be initialized from pmwSetSignal (use setSignals available in Kizis)

  • Running mode = pmSDK (default value)

  • gpiGetFreeRAM must be integrated

aceSendDEK

  • AgnosMW must be initialized from pmwSetSignal (use setSignals available in Kizis)

  • Running mode = pmSDK (default value)

  • gpiGetFreeRAM must be integrated

tPaymentContext pay;
tByte outDET[50]="";
tWord lenOutDET=0;

aceSendDEK(pay,asGPO,bFALSE,outDET,&lenOutDET);

aceSendDET

  • AgnosMW must be initialized from pmwSetSignal (use setSignals available in Kizis)

  • Running mode = pmSDK (default value)

  • gpiGetFreeRAM must be integrated

aceSendTag

  • AgnosMW must be initialized from pmwSetSignal (use setSignals available in Kizis)

  • Running mode = pmSDK (default value)

  • gpiGetFreeRAM must be integrated

tPaymentContext pay;
tTransactionalContext txnContext;
tSessionId session;

agnOpenSession("","","",&txnContext,bFALSE,bFALSE,&session,bFALSE,bFALSE);
aceSendTag(&pay);
agnCloseSession(session);

Financial Services

Financial Services

Description

Prerequisites to a Call

aceSendEMVContactAuthorization

Send an online auth. to ACE for EMV CT transactions

  • gpiGetFreeRAM must be integrated

  • tPaymentContext mDataExchange.mDataRecord.mStream and tPaymentContext mDataExchange.mDataRecord.mLength must contained TLV data

aceSendEMVContactReversal

Send a reversal to ACE for EMV CT transactions

  • gpiGetFreeRAM must be integrated

  • tPaymentContext mDataExchange.mReversalData.mStream and tPaymentContext mDataExchange.mReversalData.mLength must contained TLV data

aceSendEMVContactBatch

Send a batch to ACE for EMV CT transactions

  • gpiGetFreeRAM must be integrated

  • tPaymentContext mDataExchange.mBatchData.mStream and tPaymentContext mDataExchange.mBatchData.mLength must contained TLV data

aceSendEMVContactAdvice

Send an advice to ACE for EMV CT transactions

  • gpiGetFreeRAM must be integrated

  • tPaymentContext mDataExchange.mAdviceData.mStream and tPaymentContext mDataExchange.mAdviceData.mLength must contained TLV data

aceSendContactlessAuthorization

Send an online auth. to ACE for EMV CL transactions

  • gpiGetFreeRAM must be integrated

  • tPaymentContext mDataExchange.mDataRecord.mStream and tPaymentContext mDataExchange.mDataRecord.mLength must contained TLV data

aceSendContactlessBatch

Send a batch to ACE for EMV CL transactions

  • gpiGetFreeRAM must be integrated

  • tPaymentContext mDataExchange.mBatchData.mStream and tPaymentContext mDataExchange.mBatchData.mLength must contained TLV data

aceSendMagstripeAuthorization

Send an online auth. to ACE for magstripe transactions

  • gpiGetFreeRAM must be integrated

  • tPaymentContext mDataExchange.mTrack2.mStream and tPaymentContext mDataExchange.mTrack2.mLength must contained TLV data

Options Services

Options Services

This set of primitives is not dependent on the platform. It doesn’t require specific implementation or modification for a given integration. Hence, it works as is.

  • No labels