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

AgnosEP

See entrypoint.h

enpConnectPaymentServices

DLLEXPORT void enpConnectPaymentServices(const tString path)

Connect entry point onto available L2 CL kernels This call shall be performed only when the system is cycled up

enpDisconnectPaymentServices

DLLEXPORT void enpDisconnectPaymentServices(void);

Disconnect entry point from connected L2 CL kernels. This call shall be performed only when the system is cycled up

enpInitialize

DLLEXPORT void enpInitialize(
	tString		readerName,
	tString		pinpadName,
	tBoolean	signal,
	tBoolean	fallbackOnAID,	// DEPRECATED
	tBoolean	entryPoint,		// DEPRECATED
	tPaymentContext 	*payment //In: may be NULL is not autorun (contactless mechanism)
);

Set internal context to prepare the entry point for the subsequent transaction

enpSetLegacyXXXStatus

DLLEXPORT void enpSetLegacyZIPStatus(tBoolean status);
DLLEXPORT void enpSetLegacyPayPassStatus(tBoolean status);
DLLEXPORT void enpSetLegacyAMEXStatus(tBoolean status);
DLLEXPORT void enpSetLegacyJCBStatus(tBoolean status);
DLLEXPORT void enpSetLegacyCUPStatus(tBoolean status);
DLLEXPORT void enpSetLegacyDPASStatus(tBoolean status);
DLLEXPORT void enpSetLegacyVISAStatus(tBoolean status);

Set legacy selection rule for a given payment scheme. Payment schemes' specifications, outside Book Cx, use selection rules that might differ for error management. it is important to set appropriate flag duting TA

enpSetPollingTimeout

DLLEXPORT void enpSetPollingTimeout(int timeout);

Set timeout used during gpiPolling to detect a card presentation

enpSetLongTapTimeoutExpired

DLLEXPORT void enpSetLongTapTimeoutExpired(void);

enpGetPollingTimeout

DLLEXPORT int enpGetPollingTimeout(void);

enpPSESelectionPerformed

DLLEXPORT tBoolean enpPSESelectionPerformed(void);

enpGetPPSEFCI

DLLEXPORT tPSE* enpGetPPSEFCI(tWord *SW1SW2);

PPSE’s FCI is stored so payment application can fetch any proprietary tags like 9F0A (example: ASPRD)

enpGetMutualList

DLLEXPORT tADFList *enpGetMutualList(void);

enpAreAllCLAppplicationsNotAllowed

DLLEXPORT tBoolean enpAreAllCLAppplicationsNotAllowed(void);

enpResetAreAllCLAppplicationsNotAllowed

DLLEXPORT void enpResetAreAllCLAppplicationsNotAllowed(void);

If no CL application is selectable, provide a specific status so payment application which may fallback to CT or magstrtipe depeding on interfaces supported by the device

enpGetLastCardDetectionStatus

DLLEXPORT tGPIError enpGetLastCardDetectionStatus(void);

enpSkipPollingOnNextStartB

DLLEXPORT void enpSkipPollingOnNextStartB(tGPIError detectedStatus);

When gpiPolling is performed from outside the entry point, skip gpiPolling call from inside the entry point to avoid double tap

enpReleasePaymentServices

DLLEXPORT void enpReleasePaymentServices(const tBoolean sdk);

Broadcast afsRelease to all L2 CL kernels. This call shall be performed only when the system is cycled down.

enpExecutePaymentTransaction

DLLEXPORT void enpExecutePaymentTransaction (
	tStartingPoint 		sp,
	tPaymentContext		*payment,
	tOutComeParameter	*outcome
);

Main point of entry to initiate a CL transaction.

tPaymentContext shall be set accordingly

tOutcomeParameter provides final status

Set sp to:

  • spSTART_A: to initiate a new transaction

  • spSTART_D: to activate the kernel used for the current transaction

  • spNO_START: to clean the context

enpGetTerminalAID

void enpGetTerminalAID(tByte aidId, tByte **aid, tByte *len);

enpGetCurrentTerminalAID

void enpGetCurrentTerminalAID(tByte **aid, tByte *len);

Code Sample

See entrypoint.h

// Payment contexts
static tPaymentContext paymentCtx;
static tOutComeParameter outcome;
// Transaction amounts
static tAmount amount, cashBack;

char path[250] = "./AGNOS/"; // Configuration files here
unsigned char defaultTxnType = 0x00; // Default 9C value

  enpConnectPaymentServices(PATH);
  enpInitialize("","",bTRUE,bFALSE,bFALSE,pay);
  
  // Init payment context and payment outcome
  pmwInitializePaymentContext(&paymentCtx);
  pmwInitializeOutComeParameter(&outcome);
		
  // Important to perform these initializations after pmwInitializePaymentContext
  paymentCtx.mAmount = &amount;
  paymentCtx.mCashBack = &cashBack;
  paymentCtx.mTransactionType = (tTransactionType)defaultTxnType;
  amount = cashBack = NULL;
  
  // Set payment context from TRD...
  // ...
  
  // Initialize transient data model
  /// Only CL combinations refering to paymentCtx.mTransactionType will be loaded
  dtmInitializeFromFile(path,0,0,0,0,0,paymentCtx.mTransactionType,bFALSE);
  
  enpExecutePaymentTransaction(spSTART_A,paymentCtx,outcome);
  
  if(enpAreAllCLApplicationNotAllowed)
  {
    // Fallback to other technology if any
  }
  else
  {
    // Process outcome
  }

  • No labels