1
\$\begingroup\$

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 !

\$\endgroup\$
4
  • \$\begingroup\$ USB adds a ton of complexity, and it looks like the iuc-180b has an RS232 serial port - that is most likely the easiest way to interface with it. \$\endgroup\$ Commented Sep 16, 2020 at 18:44
  • \$\begingroup\$ @rdtsc thank you for your answer. Indeed there is a RS232 serial port on the iUC-180b, so I could use it to interface the terminal to the PC, however, I do not know the communication protocol used to communicate to the iUC-180b via the RS232 serial port (the content of the messages sent and received via the the serial channel) \$\endgroup\$ Commented Sep 16, 2020 at 18:50
  • \$\begingroup\$ I once (must be 7 or 8 yrs ago) played around with a CCV NFC Payment terminal for vending Machines. My usecase was rather to test the NFC payment function of our App. I could have used the MDB protocol over Serial, but the CCV had an Ethernet interface, so I used Wireshark to reverse engineer the TCP based protocol of the demo software that came with the Module to build a very small hardcoded piece of Python. Not sure if Ingenico has Ethernet... \$\endgroup\$ Commented Sep 16, 2020 at 19:02
  • \$\begingroup\$ This sounds a lot more like a usage/protocol question than an electrical engineering question. Likely it would benefit from research into how these are typically used. \$\endgroup\$ Commented Sep 16, 2020 at 19:14

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.