Ousret / pyTeliumManager

Python library to manipulate Ingenico mobile payment device like iCT220 or iWL220 equipped with Telium Manager. RS232/USB.
http://pyteliummanager.readthedocs.io
MIT License
104 stars 20 forks source link

Using test script defaults terminal to MAILORDER SALE #6

Closed PeterAlabaster closed 6 years ago

PeterAlabaster commented 6 years ago

Hi,

I've been trying several different python based telium manager scripts, and they all have the same issue.

Not sure where else to ask which is why i've raised an issue (sorry!)

The device shows up under /dev/ttyUSB0 when I use a Serial --> USB A adapter from the 'magic box'.

I run the test script, and this pops up on the terminal:

MAILORDER SALE
Key Card No.

If I continue and put in fake card details and postcode etc, the payment is rejected (expected) and a receipt is printed showing the same value which was sent to it by the test script.

My question is, why is it going to a mailorder sale, and not displaying the value of the transaction on the terminal itself?

I would assume it is something to do with config of some sort on the device itself, however I've run over it several times and cannot find anything regarding it.

Ousret commented 6 years ago

Hi,

I think that this is related to your device provider, they probably have added a plugin, like a security challenge or something like that. In any case, I think that you'll need extra config with magnetic card for example.

I encountered this situation with a device later this year, I asked for remote (init) configuration with our bank technicians.

This is way out of my competence, I'm sorry. I don't think this is a issue regarding the code.

Regards,

PeterAlabaster commented 6 years ago

Thanks for your opinion.

Just as an update, in case anybody else reaches this problem.

For some context, I am using the odoo module hw_telium_payment_manager, but is very similar to this library

The constructed message had a couple of incorrect values: The answer flag (after transaction amount), in my case, was 0 and should have been 1 The payment mode (after answer flag), in my case was 1, and should have been 0 The delay (toward the end of the message), in my case was A011, and should have been A010 The checksum (last character in the message) (lrc) was xoring the entire message, but should have been xoring the transaction values, then xoring the hex code \x0C.

This is probably only going to be applicable to myself, or maybe one or two others, and unsure if it will even be possible to tweak as a user of this module (have not tested) but just thought i'd drop an update, incase anybody else had a similar problem.

Now the terminal is showing up with the expected customer present sale, showing transaction value and working with pinpad iPP350.