банкомат. За дріт.

Р

У зв'язку з недавньою темою банкоматів, прагнення хабу дізнатися більше про них, а також просто величезну кількість спекуляції з такої, здавалося б, технічно заспокійливої аудиторії, я вирішив написати цей пост.

На відміну від UserSide, який в основному займається фізичним обслуговуванням банкоматів, і я думаю, дуже далеко від тих, хто насправді пише програмне забезпечення для управління його господарем, я буду говорити про «іншої сторони». Природно, до кращих знань, як і раніше скромно.

Так як це мій перший пост на хабі, я апологізую для того, щоб бути занадто плутаними.

Перше, що я хочу відзначити, що все в статті і практично все в коментарях правда, але правда одностороння – вона описує конкретні випадки. І хоча це спеціальні випадки, таким чином, в якому представлена інформація, непідготовлений зчитувач може отримати враження, що це відбувається тільки так, як він сказав. І хоча в коментарях з'явилися кілька оповідних описів ситуацій, ніхто не озвучив головне - все це спеціальні випадки.

1,1 км Картки та рахунки
Одна з учасників форуму, яка відноситься до свого досвіду, наполягає, що будь-який обліковий запис (і в будь-якій валюті) може бути прив'язана до картки протягом 5 хвилин, хтось ще сумнівається. Це дійсно є. Можливість даної процедури визначається тільки можливостями програмного забезпечення самої системи обробки, його підтримки від інтернету / мобільного банку, прагнення банку забезпечити такі послуги населенню і прагнення платити за це додаткові кошти розробнику системи. У системі, на яку я хвилююсь, карта і рахунок є двома різними особами.
Картка в нашій термінології – це токен – так само, як токен, наприклад, пароль, сертифікат, документ ідентичності та деякі інші, не відразу пам’ятаю. Щоб отримати доступ до облікового запису, натисніть кнопку "Токен". Більш того, як обліковий запис можна отримати за допомогою декількох токенів, тому токен може служити кілька облікових записів. Наприклад, в одному банку, де працює наша система, під час операції Картки, можна попросити вказати конкретний рахунок - якщо кілька з них прив'язуються до картки.

2,2 км PIN є протилежним для шахраїв
Ця функція називається "False PIN" (iPIN). У той факт, що деякі банки пропонують зробити його за замовчуванням як основний PIN, написаний в зворотному режимі, служить тільки метою полегшення запам'ятовування. У мене є враження, що не всі розуміють це.
Наскільки я почув з колег, ця функція не дуже популярна, тому що вона має негативні сторони (Я не знаю, що). Справа в тому, що вона рідко використовується.

3. Збір/відправлення карт
Знову це не вмітне правило, це зроблено просто для зручності сервісу. Так, в нашій системі я підозрю, що це так само, як і у всіх інших.
При вставці такої картки, хост, замість виконання операції, запити поточних лічильників від банкомату (або саму програму банкомату можна визначити таку картку і відразу відправляти лічильники самостійно - про програми подальших додатків). Потім відбувається фізична колекція терміналу з входом нових лічильників в неї (це робиться вручну, але я чув з краю вуха, що це можливо і автоматичний запис на обстеження касетів ... але я думаю, що тепер вона рідко доступна). Після закривання банкомату двері натискає спеціальну кнопку, що називається кнопка супервайзера, і звіти про банкомати мережі принаймні, що стан датчика «Супервізорний режим» змінився, а також його повну державу, включаючи нові лічильники (і, можливо, навіть старі – див. розділ на додатки). Якщо звіт містить інформацію про датчика, то господар самостійно просить лічильників. У цей момент ведучий може порівняти нові лічильники до старих і створити операцію з збору. І знову, як це працює, але це не означає, що він працює всюди. Але так як схема дуже гнучка і автономна, вона, безумовно, використовується практично в будь-якому програмному продукті такого роду.

Замість картки можна віддати команду до початкового обстеження лічильників (до передачі банкомату до режиму супервізора для збору) Збірник в цьому випадку може виглядати так: колекціонери прибувають на місце, зателефонують обробний центр, оператор виконує команду через систему, потім все в першому сценарії.

4. банкомат Додаток
Слід зазначити, що всі додатки можна розділити на 2 типи:
  • Введіть номер мобільного, який Ви вказали при укладаннi договору з банком - для ідентифікації. До них відносяться NDC, DDC та Triton.
  • Протокол обміну не тільки міцно зафіксований, але навпаки, додаток на банкоматі є стійким плагіном для підтримки зв'язку з певним хостом. Це те, як вбудовані банкомати Kalignite, що є самим гнучким, що я коли-небудь працював. Застосування Kalignite є регулярним. Чистий додаток, екрани, що відображаються на екрані банкоматів, є звичайними HTML-сторінками, що відображаються за стандартом. Чистий компонент браузера (який, в свою чергу, базується на ядрі IE, тобто має всі свої вразливості). Тим не менш, сам компонент сильно закривається. Завдяки цьому розвитку візуальної частини сценарію, веб-дизайнери можуть займатися і насолоджуватися всіма перевагами - наприклад, jQuery, віртуальна клавіатура і всі душі бажання.
    Так як банкомат працює код, який написаний самим розробником системи, продуктивність будь-яких функцій сервісу може бути значно спрощеною - наприклад, операція збору може бути сформована на банкоматі, і відправлена в господар як звичайний запит про транзакції (тільки це буде адміністративна операція).
Найголовніше, що відрізняє ці схеми взаємодії хост-ATM, які є частиною проміжних даних, доки може бути сформована повна операція. Це може статися, наприклад, коли 2 або більше облікових записів пов'язані з картою – оскільки сценарій взаємодії не знає кількість облікових записів заздалегідь, він просто формує запит транзакції і надішляє його до господаря. Ведуться відхилити його з причиною «Розкриття необхідно» і відправляє список параметрів, які необхідно уточнити. І є дві можливості:
  • Термінал надсилає тільки вказані параметри - в цьому випадку, господар повинен десь зберігати інформацію, яку банкомат відправлений в попередньому запиті - безстроковий банкомат, державний господар - це як всі банкоматні програми з жорстко фіксованим протоколом (NDC / DDC, Triton та інші), оскільки протокол не забезпечує простору для зберігання даних;
  • Термінал передає всі останні дані плюс рафіновані параметри – стаціонарний банкомат, безшовний господар. Це найкраще зроблено при роботі з Kalignite, тому що вам все ще потрібно (попередньо) писати розширення для взаємодії з зручним протоколом хост.
5. Умань Зняття карт і помилкові PIN-коди
Поведінка при виявленні невибраної картки повністю налаштовується - банкомат може одночасно захопити його і залишити його в урочищі. Те ж саме стосується видачі картки до / після того, як гроші, на початку / закінчення роботи, коли відбувається відключення електроенергії (якщо банк не зовсім бідний, то в банкоматі повинні бути УПС). Що робити, якщо вводиться неправильний PIN-код, вводиться помилковий PIN (якщо це), коли лічильник невірного PIN скидається, чи потрібна захоплення картки. Якщо господар не завадить банкомату охопити картку, він не захопить його, якщо він ще десять разів підроблений, вкрадений і втрачений.

6. Жнівень Чіп-карти
Що робити з чіп-картами, якщо не можна читати чіп, залежить від налаштувань скрипта. У вузькому діапазоні послуг можуть бути запропоновані або просто відмовляються служити. Так само йде на інші банківські картки.

7. Про нас Максимально 40 банкнот для видачі та алгоритму
Який алгоритм видачі та де банкомат розпізнає його – знову, повністю залежить від налаштування. Звичайно, тепер, в епоху загального Інтернету, це вигідно для господаря, щоб виконати всі розрахунки самостійно, і банкомати тільки команди. Тим не менш, наприклад, Kaliginte-object для управління CashDispenser (пристрій видачі кешу) також здатний розрахувати суму покупки з використанням різних алгоритмів. У нашій системі ми не використовуємо цю можливість. І знову, дозволяючи користувачу вибрати алгоритм видачі, або, як хтось сказав у коментарях, навіть конкретні деномінації рахунків, повністю залежить від бажання банку створити такий сценарій (і на можливості програмного забезпечення, звичайно).

Обмеження 40 рахунків дійсно надходить від фізичних обмежень - пакет 40 банкнот майже сантиметрової товщини. Про те, що банкомат просто відмовляється видати суму, яка не може бути фізично надана в часі, з неперевершеною помилкою - несправністю розробника сценарію - що не забезпечувало чітке повідомлення про причину. З Kalignite все, як правило, простий, це звичайний HTML, як я сказав вище, фактично локальний сайт, і для NDC / DDC банкоматів, відповідь ведучих може містити оновлені екрани, текст на який, знову, визначає господаря. Тритонський протокол краще, і він має кілька кодів помилок, але Трітони не здаються дуже поширені в Росії.

8. У Операційна система
Випробувано на Windows XP. І я був протестований зі скриптом Kalignite, з банкоматами NDC та DDC.


Навігація Я сподіваюся, що це було цікаво і хаос в моїй голові знизився. Головною точкою, яку я хотів передати, є те, що все налаштовано. Звичайно, десь менше, десь більше, але це більше про глибокі нюанси, ніж ті, які видно на першому погляді.

Джерело: habrahabr.ru/post/217337/