I'm working on a project where I need to create a communication channel between a standard PC (running Windows) and a payment terminal (a NFC credit card reader, an Ingenico iUC 180B). I'm a junior embedded software engineer so I have done low level communication protocols such as I2C or SPI, or serial communication between two devices, I'm not completely clueless on the subject BUT I have never worked on payment terminals before.
What I would like to do is very basic : I know on the iUC180B I can fill a price table with ID 0 corresponding to a certain amount of cents, ID 1 to an other amount etc, ok no problem. But now, I would simply like for the PC to communicate an ID to the payment terminal, the payment terminal then asks the client to put its credit card on the NFC reader for the corresponding amount, and then, when it's done, the payment terminal sends a "yes" or "no" answer to the PC depending on if the payment was accepted or not. That is basically all I need and it seems, for me, to be a very basic functionality. The trouble is I just can't understand the communication between the two devices.
I have done some researches and I'm currently reading the 313 pages of the MDB v4.2 protocol but I'm just really troubled by those researches. It seems as if a micro-controller serving as a VMC is needed between the PC and the iUC 180B, which seems very strange to me for such a simple and widespread functionality. Am I misinterpreting things ? And if a VMC is needed, does a fully functional VMC micro-controller can be bought and if so, where ? This communication is really a small part of the project I'm working on (for my company) and I simply don't have time to loose weeks on it...
Also, for such a basic task, isn't there a way to use an other communication protocol ? I heard of the executive protocol (or protocol A) but I couldn't really find ressources on this, I'm not sure what it is.
Before I started this project, I just assumed that we could plug the payment terminal to the PC via USB and just use a standard serial communication. I also assumed that high level libraries were available on Github or somewhere else to use the serial port with high level methods (such as "request_payment(price)" or something like that). I assumed that because payment terminals are so widespread so it seems a little crazy to me that this is not possible (open-source or not), but maybe it is and I'm just not looking in the right place ?
Thank you for any help you can give me !