Integray's GPE Connector for Seamless Payment Terminal Integration

I have written an article on LinkedIn about payment terminal integration and I have decided to provide detailed solution here.

Imagine we have store with two cash registers and each has own payment terminal one is using GPE protocol and second REVO protocol.

This is final setup for terminal payment integration and we will describe it in detail how to configure each step.

So let’s start with configuration

First of all we will create input schema which we send to Integray.

Create new task Terminal payment. Then we will need agent which will be able to see on payment terminal. So create agent e.g. StoreAgent.

Add first step Get amount (JS Mapper connector) and set input/output schema to schema we have created before. Then just resend data. The reason for this step is due to we can’t use filtering on the first step.

return inputData;

Add second step Use GPE terminal (JS Mapper connector), where we will filter for GPE payment terminal. In this example we take only amount from input. There is also filtering for GPE payment terminal. For output schema use Pos GPE Payment Input Schema (1.0.0). And set agent to agent we have created before to StoreAgent.

.

return [{"Amount": inputData[0].Amount }];

Add third step GPE payment (Terminal Protocol GPE payment connector). Set IP address and port of terminal.

Add fourth step Process GPE payment (JS Mapper connector) and select data you want to process. In my case I’m returning whole terminal response in JSON format.

const jsonString = JSON.stringify(inputData[0]);

return [{"JSON": jsonString}];

No we need to create new SYNC endpoint and bind it our task Terminal payment. Don’t forget to secure endpoint with token.

We also set endpoint output and bind it to task step Process GPE payment

Press publish button so we can run terminal payment test.

Download and run StoreAgent.

I will use Postman for testing. In body send JSON in following format.

{
    "Amount": 10, 
    "Currency": "CZK", 
    "TerminalPaymentId": "TP0001", 
    "Terminal": "GPE" 
}

Add bearer authorization with token from endpoint we have created (Postman Authorization tab)

postman

Conclusion

As you can see we have created terminal payment integration in less then hour.

11 Likes

Very useful thing

1 Like