Amadis

AgnosMW API - version 3.5.20.23791

 

API _Version _Revision

Description

API _Version _Revision

Description

_AgnosMW _version 3.5.20 _revision 23791

Payment Middleware

Payment Middleware

See paymentmw.h

#include

#include "datamngr.h" #include "dataxchng.h" //---- Agnos Framework Headers ---- #include "agnos.h" //---- Global Headers ---- #include "gpi_agnos_framework_globals.h"

--

#define

#define CHIP_MODE 0x05 #define MAG_MODE 0x90 #define FALLBACK_MODE 0x80 #define MANUAL_MODE 0x01 #define EMV_CL_MODE 0x07 #define MAG_CL_MODE 0x91 #define PSE_DDF_NAME "1PAY.SYS.DDF01" #define PSE_DDF_LENGTH 14 #define PPSE_DDF_NAME "2PAY.SYS.DDF01" #define PPSE_DDF_LENGTH 14 #define ACCOUNT_TYPE_RANGE 10

--

tTransactionType

typedef enum { ttPURCHASE, ttCASH, ttWITH_CASHBACK, ttREFUND, ttMANUAL_CASH, ttQUASI_CASH, ttDEPOSIT, ttINQUIRY, ttPAYMENT, ttTRANSFER, ttADMINISTRATIVE, ttHOUSE_KEEPING, ttRETRIEVAL, ttUPDATE, ttAUTHENTICATION, ttCASH_DISBURSEMENT, ttPRE_AUTHORIZATION, ttMONEY_ADD, ttVOID, ttCLEAN_ALL, ttRESET, ttUNDEFINED } tTransactionType;

--

tAccountType

--

tStartingPoint

--

tOutCome

--

tInterface

--

tAlternateInterfacePreference

--

tOnlineResponseData

--

tCVM

--

tOutComeParameter

--

tPaymentContext

  • Information provided by Level3: these data members must be filled up by the payment application integrating Agnos API. These data members are provided by a TRD trigggered by a sales system or a test environment (ACE)

 

  • Information set by Payment System:

    • mEMVContact/mEMVContactless/mMagstripe: these data members are initialized from TERMINAL file by AgnosEP at enpInitialize calling time. They are mandatory only when integrating a CL acceptance system supporting contact and/or magstripe

    • Tags 9F3A/9F3C/9F3D (meant for contact only): not used yet

    • Tag 5F57, account type (meant for contact and contacless): this data is used to set AgnosDB with from a TRD trigggered by a sales system or a test environment (ACE). If missing or length invalid 5F57 then systematically set to empty

    • Tag 9F39, POS entry mode (meant for contact and contactless):

      • Magstripe: set by payment application to MAG_MODE = 0x90

      • Contact: set by payment application to MAG_MODE = 0x05

      • Fallback from Contact to Magstripe: set by payment application to FALLBACK_MODE=0x80

      • Contactless: set by contactless card processing to EMV_CL_MODE=0x07 or MAG_CL_MODE=0x91

    • Tag 9F41, Transaction Counter (meant for contact only): this data member is used by emvco.c to demonstrate that each subsequent transsction can be indexed by a counter (for the purpose of L2 TA)

    • mARC (meant for contact and contactless): this data member is set by payment application just before completion from issuer response. It is used to set mCID to TC or AAC

    • mUnableToGoOnline (meant for contact only): this data member is set by payment application just before completion to indicate how to manage risk at GenAC2 time

  • Information set by Payment Application (from Agnos primitives):

    • mRID:

    • mADF:

    • mADFOrder:

 

  • Information set by EMV Library:

    • mSession

    • mCID

 

  • Information calculated by Level3: these data members are set automatically on at pmwSetEMVResult calling time. It shall be called at the end of any EMV contact transactions by payment application. It is systematically called by AgnosEP at the end of any contactless transaction

 

  • Level3<->Level2 communication: this data member is only meant for contactless transaction when supporting data exchange. Even if it is mandatory for few payment schemes during L2 TA, it is not mandatory to support it in production

pmwGetPaymentMiddlewareVersionNumber

Get AgnosMW version.

pmwGetKernelVersion

Get EMV core engine version.

pmwInitializePaymentContext

Reset the payment context. Shall be called before any new transaction.

pmwInitializeOutComeParameter

Reset the outcome context. Shall be called before any new transaction.

pmwProceedToUniversalFinalSelection

Proceed to standard final selection following EMVCo specs. This mechanism can be overloaded:

  • In contact, don’t call the primitive and implement a specific selection processing (see selectionlogic.c)

  • In contactless, use tApplicationSelectionMethod callback

pmwSetEMVResult

 

Set EMV parameters after a transaction within tPaymentContext based on Agnos status.

In contact, this shall be systematically called by payment application.

In contactless, AgnosEP encapsulated that call.

pmwCloseSession

 

Close Agnos session

 

Data Manager

Data Manager

See datamngr.h

dtmInitializeFromFile

 

Agnos uses three files to persist its data model:

  • TERMINAL

  • PROCESSING

  • ENTRY_POINT (contactless only)

Use this primitive ahead of any transaction flow in order to initialize the transient data model.

dtmSetTransactionalContext

 

Set this context to open an Agnos session (contact only. See emvco.c)

dtmSetData

 

 

  • TERMINAL_CTX

  • CONTACT_PROCESSING_CTX

  • CONTACTLESS_PROCESSING_CTX

  • ENTRY_POINT

dtmGetData

 

  • TERMINAL_CTX

  • CONTACT_PROCESSING_CTX

  • CONTACTLESS_PROCESSING_CTX

  • ENTRY_POINT

 

Data Exchange

Data Exchange

See agnosmw.h. dataxchng.h

tLevel3DataExchange

--

 

 

 

 

 

 

 

 

 

 

 

Exit Condition

Exit Condition

See agnosmw.h. exitcondition.h

tExitCondition

--

#define

 

Â