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 //--------------------------------------------------------- // 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 | #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 | None. Use an empty tOuComeParameter structure to test the service |
aceSendDR | ||
aceSendDD | ||
aceSendRawDD | ||
aceSendDEK | ||
aceSendDET | ||
aceSendTag |
Financial Services
Financial Services | Description | Prerequisites to a Call |
---|---|---|
aceSendEMVContactAuthorization | Send an online auth. to ACE for EMV CT transactions |
|
aceSendEMVContactReversal | Send a reversal to ACE for EMV CT transactions |
|
aceSendEMVContactBatch | Send a batch to ACE for EMV CT transactions |
|
aceSendEMVContactAdvice | Send an advice to ACE for EMV CT transactions |
|
aceSendContactlessAuthorization | Send an online auth. to ACE for EMV CL transactions |
|
aceSendContactlessBatch | Send a batch to ACE for EMV CL transactions |
|
aceSendMagstripeAuthorization | Send an online auth. to ACE for magstripe transactions |
|
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. |
---|