0

I have a scenario where I have to connect a Verifone Model VX510 (credit card processing machine) with my opencart multistore website. It will work like this: if someone buys from the website, the machine (that will be placed on physical location of the store) will print out the order. I know I will have to connect this machine with the website, but I am unaware if any API for Verifone VX510 exists that will let the website integrate with the machine for printing orders. I have checked the machine user manual, but could not find any API or solution. Has anyone worked on this type of task or does anyone know how I should handle it?

David
  • 4,665
  • 4
  • 34
  • 60
  • Not a system administrator but from what I know You would need to put the machine at some network with visible/accessible network address and then You can call Your own API sitting on the same network (easiest way) that will print (send print requests) on that address... Have no idea how this is done (achieved) from PHP as I never had to implement such solution but I am curious myself how this is done. – shadyyx Mar 26 '14 at 08:42

1 Answers1

0

I realize this is an old question, but allow me to attempt an answer anyway...

If this is an option, then I think the easiest way to do this would be to write a program that runs on the 510 and polls your "opencart multistore website" for orders it should print out. If you use the idle engine, you could set the slow_poll interval to be whatever time period you deem appropriate, and then when that event fires, just connect to the server and send your query.

As for the specific API--I would recommend using the helper app CommServer, and then using flexi-records to communicate with CommServer. This would mean your APIs will mostly involve EESL_send_event and EESL_read_cust_evt, but of course you will need others (like vVarInitRecord and ushInitStandardFlexi among others).

Of course, your program that runs on the terminal could instead listen for a connection from the server, however unless you have control over the network in all the stores this will be deployed in, I would advise against that approach simply because many stores will not like accepting incoming traffic and may make the deployment process more difficult for you.

Another difficulty you could face (particularly with the latter option) is if the terminal hosts multiple applications (of which yours is only one). In that case the network resources will not necessarily be available when you want/need them. In the polling scenario, this would result in the data being printed out late. In the server-to-terminal communication, this could result in the terminal just never getting the message at all (depending on how you program it).

I don't know if you have any experience developing for VeriFone terminals or not, but if you don't, then start by going to http://www.verifonedevnet.com. From here you will be able to find your regional contact who can guide you through the process of purchasing compiler licenses, downloading the VerixV SDK and other necessary steps. Be warned, though--VeriFone seldom does anything for free--you'll likely need to get your wallet out at some point.

David
  • 4,665
  • 4
  • 34
  • 60