Что нас интересует в протоколе ARCUS от компании Ingenico? Как интегрировать работу с банковским терминалом в наше программное обеспечение , например, в автоматизированное рабочее место кассира.
Существует два подхода для оплаты банковской картой:
Первый это когда терминал сам напрямую связывается с банком (по LAN, WiFi, GSM)
И второй вариант это когда у терминала нет интерфейсов типа LAN, WiFi, GSM , а есть только USB. И часто у такого терминала нет еще и печатающего устройства , и это уже тогда называется пинпад. Смысл всего этого в удешевлении стоимости терминалов.
Как следствие связь с банком происходит через Кассу (или ПК) по USB , по зашифрованному трафику.
При установке драйверов под Windows необходимо на начальном этапе выбрать используемый протокол OpenWay, SmartVista, Tieto и т.д.
Управление терминалом под Windows идет через библиотеку Arccom.dll. Для примера есть консольная программка CommandLineTool.exe, с помощью которой можно проверить принятие оплаты, возврат и т.д.
C:\Arcus2\CommandLineTool>bin\CommandLineTool.exe /?
DLL from: C:\Arcus2\DLL\Arccom.dll
CommandLineToolEx for Arcus 2.1.x.x
Usage:
CommandLineToolEx [/?] [/help] [/hide] [/console] [/arcusid] [/mcc]
[/o] [/a] [/c] [/h] [/t] [/i] [/e] [/v] [/r] [/f] [/b]
[/x] [/q] [/B] [/p] [--payment-data=]
[--dialog-direct] [--repeat=] [--port=] [--origin-oper-type=]
[--print-file=] [/z]
Description:
/? - Show help information message
/help - Show help information message
/hide - Hide console window
/console - Use callback dialog functions
/arcusid - (ARCUS_ID) Set ARCUS ID for Arcus IP Server
/mcc - (mcc) MCC
/o - (command) Operation code, as defined in ops.ini
/a - (amount) Operation amount without any delimiters
/c - (currency) Operation currency code
/h - (original_amount) Operation original amount without any delimiters
/t - (rfu) Track2 data or PAN
/i - (terminal_id) Terminal Identification
/e - (enc_data) Encrypted card data
/v - (auth_code) Authorization code
/r - (rrn) Retrieval reference number
/f - (original_date_time) Original date and time of operation
/b - (trace_id) Invoice number/RN
/x - (transaction_id) Transaction ID
/q - (receipt_number) receipt number
/B - (bms_id) BMS parameter
/p - (qr_pay_sys_id) Mobile payment system name (alipay, yandex...)
--payment-data=- (payment_data) Payment Data (tag 1F 80 1E for SPDH Fid "9" Subfid "i")
--dialog-direct- (dialog_direct) Run special command for test DialogDirect functional (skip all another parameters)
--repeat= - (repeat_count) Repeat run operation
--port= - (PORT) connect to this COM port
--origin-oper-type=- (original_oper_type) Operation original type
--print-file=- (print_file) Print text file on terminal
/z - (cash_amount) Cash amount returned in purchase operation
Example of usage:
- invoke administrative menu (ops.ini code 99):
CommandLineToolEx /o99
- purchase operation (ops.ini code 1, amount 2.21, currency RUB):
CommandLineToolEX /o1 /a221 /c643
- purchase operation (PAN=1000023000000034, exp_date[yymm]=1106):
CommandLineToolEx /o1 /a221 /c643 /tM1000023000000034=1106?
- purchase operation (track2=;1000023000000034=06062011021300000641?):
CommandLineToolEx /o1 /a221 /c643 /t;1000023000000034=06062011021300000641?