Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ousret/pyteliummanager
Python library to manipulate Ingenico mobile payment device like iCT220 or iWL220 equipped with Telium Manager. RS232/USB.
https://github.com/ousret/pyteliummanager
amex cetelem credit-card debit-card eftsmart2 eftsmart4s ingenico ingenico-ict220 payment point-of-sale pos telium-manager
Last synced: 5 days ago
JSON representation
Python library to manipulate Ingenico mobile payment device like iCT220 or iWL220 equipped with Telium Manager. RS232/USB.
- Host: GitHub
- URL: https://github.com/ousret/pyteliummanager
- Owner: Ousret
- License: mit
- Created: 2016-10-20T12:21:29.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2021-09-18T19:38:32.000Z (about 3 years ago)
- Last Synced: 2024-11-07T18:54:45.595Z (12 days ago)
- Topics: amex, cetelem, credit-card, debit-card, eftsmart2, eftsmart4s, ingenico, ingenico-ict220, payment, point-of-sale, pos, telium-manager
- Language: Python
- Homepage: http://pyteliummanager.readthedocs.io
- Size: 103 KB
- Stars: 104
- Watchers: 19
- Forks: 20
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
Welcome to Ingenico for Human 👋
One of the few library that help you use this kind of hardware
> Python library to manipulate Ingenico mobile payment device equipped with Telium Manager. RS232/USB.
> Please note that every payment device with Telium Manager should, in theory, work with this.##### PyPi
*Python 2.7 support has been added to master branch since v2.3.0*
```sh
pip install pyTeliumManager --upgrade
```##### How to start using pyTeliumManager
```python
# Import telium package
from telium import *# Open device
my_device = Telium('/dev/ttyACM0')# Construct our payment infos
my_payment = TeliumAsk.new_payment(
12.5,
payment_mode='debit', # other mode: credit or refund.
target_currency='EUR',
wait_for_transaction_to_end=True, # If you need valid transaction status
collect_payment_source_info=True, # If you need to identify payment source
force_bank_verification=False
)# Send payment infos to device
try:
if not my_device.ask(my_payment):
print('Your device just refused your transaction. Try again.')
exit(1)
except TerminalInitializationFailedException as e:
print(format(e))
exit(2)# Wait for terminal to answer
my_answer = my_device.verify(my_payment)if my_answer is not None:
# Convert answered data to dict.
print(my_answer.__dict__)
# > {
# '_pos_number': '01',
# '_payment_mode': '1',
# '_currency_numeric': '978',
# '_amount': 12.5,
# '_private': '0000000000',
# 'has_succeeded': True,
# 'transaction_id': '0000000000',
# '_transaction_result': 0,
# '_repport': '4711690463168807000000000000000000000000000000000000000',
# '_card_type':
# {
# '_name': 'VISA',
# '_regex': '^4[0-9]{12}(?:[0-9]{3})?$',
# '_numbers': '4711690463168807',
# '_masked_numbers': 'XXXXXXXXXXXX8807'
# }
# }if my_answer.has_succeeded:
print("Your payment has been processed using a {0} card. Id: {1}".format(my_answer.card_type.name, my_answer.card_type.numbers))
else:
print("Your payment was rejected. Try again if you wish to.")
```##### **How to enable computer liaison with Ingenico device**
1. Press "F" button
2. Press 0 - Telium Manager
3. Press 5 - Init
4. Press 1 - Param
5. Select - Checkout
6. Select "Enable"
7. Choose your preferred interface (USB, COM1, COM2)**Tested devices:**
- Ingenico iWL250
- Ingenico iCT220
- Ingenico iCT250Should work with all i**2XX device equipped with Telium Manager app.
Feel free to repport issue if your device isn't compatible with this package.**Won't work**
- All direct PinPad liaison, also known as iPP3XX. (see issue #2)
#### Q-A
> Will this package cause loss of money in any way ?
- You shouldn't worry about that, I've deployed it for a different store in 2015. No loss has been reported yet.
- If you hesitate on how to use this package, feel free to ask me before using it.> My device isn't working with this package.
- Make sure you've followed **How to enable computer liaison with Ingenico device** steps above beforehand.
- If you're on Windows, make sure you've installed the correct driver.
- Try every COM port, one by one.
- On Linux it should be located at */dev/ttyACM0*, if not run ```ls -l /dev/tty* | grep ACM``` to locate it.#### Contributions
Feel free to propose pull requests. This project may be improved in many ways.