SPI  1.1.28
Secured Payment Interface
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
PySPIExample.py
1 import os
2 import platform
3 import sys
4 system = platform.system()
5 if system == 'Windows':
6  base = 'C:' + os.sep
7 elif system == 'Linux':
8  base = os.sep + 'opt'
9 else:
10  print('Error: unknown platform system: ' + system)
11  sys.exit()
12 
13 path = os.path.join(base, 'Modularity', 'SPI')
14 print('path = ' + path)
15 sys.path.append(path)
16 import PySPI
17 
18 ### Initiate service ###
19 spi = PySPI.SPI()
20 print('SPI version ' + spi.GetSPIVersion())
21 
22 service = spi.AddService('AshraitEMV', PySPI.ServiceID.AshraitService, PySPI.Config())
23 serialNumber = '0123456789'
24 pinpadID = 1
25 pinpad = '127.0.0.1'
26 service.Init(serialNumber)
27 print('Service version ' + service.GetServiceVersion())
28 retailer = service.GetRetailerID()
29 print('Retailer: ' + retailer)
30 if retailer == '':
31  service.AddPinpad(pinpadID, PySPI.Config(pinpad, 0), PySPI.PP_Protocol.MP3, True)
32  retailer = '0883012'
33  service.DoEstablishment(retailer)
34 
35 ### Do a transaction ###
36 transaction = PySPI.AshraitEMVTransaction(1000, retailer, PySPI.CurrencyType.Curr_Shekel)
37 transaction.SetPinPadId(pinpadID)
38 transaction.SetTip(200)
39 ret = service.DoTransaction(transaction)
40 resultCode = transaction.GetTransactionResultCode()
41 resultMessage = transaction.GetTransactionResultMessage()
42 print('DoTransaction(): ret = {0}, Result Code = {1}, Result Message = {2}'.format(ret, str(resultCode), resultMessage))
43 if resultCode == 0:
44  receipt = transaction.GetMerchentRecipt()
45  for entry in receipt:
46  print('{0} = {1}'.format(entry.key, entry.value))