Payment terminal integration


Alberto Merciai
 

Hello,

Suppose I would like to add a payment terminal to the EVerest framework. 
Can you help me understanding how to do that?
Is there any example related 
Payment terminal integration? A module?

Thanks,
Alberto


piet.goempel@...
 

Hi Alberto,

have a look at the everest-core Auth module: https://github.com/EVerest/everest-core/tree/main/modules/Auth and the following interfaces
https://github.com/EVerest/everest-core/blob/main/interfaces/auth_token_provider.yaml
https://github.com/EVerest/everest-core/blob/main/interfaces/auth_token_validator.yaml

In EVerest authorization generally uses the pattern that there can be multiple authorization providers and multiple authorization validators configured. The auth module handles incoming authorization requests from the providers and forwards them to the respective validators. In case a request can be validated, the Auth module notifies the EvseManager that charging is allowed.

Examples for TokenProviders:
  • RFID-Reader
  • Central Authorization Terminal
  • ISO15118 module (for Plug&Charge)
Examples for TokenValidators:
  • OCPP (CSMS)
  • Whitelists
  • Payment Service Providers
What you need to do in order to implement a Payment terminal is to implement one (or two) module(s) that implement the token_provider and token_validator interfaces. Note that token_providers have the option to set a ProvidedIdToken (https://everest.github.io/generated/types/authorization.html#authorization-providedidtoken) as prevalidated. In this case, the Auth module will not forward this token to the validators. That might be useful for the case of a Payment Terminal module where a request is sent to a PSP and the token can be validated before a provider publishes it. This is for example used within EVerest when OCPP (as auth_provider) receives a RemoteStartTransaction.req . In this case the token doesnt need to be forwarded to any validator.

Hope this helps.

Best Regards
Piet