Как реализовать в сценарии 2 одновременных транзакции

Обсуждаем инструментарий, технологии, прочие рабочие моменты.
gy1610
Специалист
Сообщения: 410
Зарегистрирован: 21 апр 2011, 00:32
Откуда: Грузия, Тбилиси
Благодарил (а): 14 раз
Поблагодарили: 8 раз

Как реализовать в сценарии 2 одновременных транзакции

Непрочитанное сообщение gy1610 »

Как обычно бывает, увидели как сделано у "конкурентов", и решили сделать такое же у себя. А "конкурентов" сделано так, в то время, когда транзакция заканчивается, и банкомат в состоянии Please Wait, на экране его появляется кнопка, нажав которую можно, к слову, сделать перечисления в благотворительный фонд. Фиксированную сумму со своего счёта, например, 1 доллар. Причём основная транзакция продолжает обрабатываться независимо от этого перечисления. У меня возникают смутные подозрения, что на нашем процессинге(TIETO) такое сделать нереально. Вопрос к сообществу, если у кого реализован этот сценарий и информация не секретная :), то проконсультируйте пожалуйста. Подсказка: насколько знаю, этот функционал реализован у ПриватБанка.
Последний раз редактировалось Lucky 10 дек 2013, 21:14, всего редактировалось 1 раз.
Причина: Поправила тему
booby
Специалист
Сообщения: 391
Зарегистрирован: 21 янв 2013, 07:14
Поблагодарили: 1 раз

Re: Как реализовать в сценарии 2 одновременных транзакции

Непрочитанное сообщение booby »

Вторая транзакция может быть не совсем "одновременной". Например, она может быть отложенной - интерфейс пользователя отрабатывается в промежутке Please Wait первой транзакции, а сама вторая транзакция начинается после окончания первой транзакции.
DcCtrl
Местный
Сообщения: 83
Зарегистрирован: 09 авг 2011, 01:03
Поблагодарили: 7 раз

Re: Как реализовать в сценарии 2 одновременных транзакции

Непрочитанное сообщение DcCtrl »

Можно сделать вот так :

1. Только со стороны банкомата : пишется небольшая DLL, которая делает всё что Вам нужно ( поверьте, совсем не сложно сделать переход не на стейт 'I' а на стейт 'E', в котором показать экран от стейта 'I' и сделать активной любую FDK с небольшим значением time-out, а по ней - добавить к сумме 1 USD + поправить некоторые значения в Operaion Key Buffer ). Но в любом случае - хост нужно "доделать", чтобы он от пришедшей суммы отнимал 1 USD в пользу благотворительности, если клиент нажал на кнопку.

2. Только со стороны сервера, только с помощью сценария : тоже возможно, используя в основном стейт ’@D ’. И конечно, хост опять-же должен уметь "роутить" 1 USD от пришедшей суммы куда нужно.
cirik
Новичок
Сообщения: 44
Зарегистрирован: 23 ноя 2010, 22:29
Благодарил (а): 3 раза
Поблагодарили: 7 раз

Re: Как реализовать в сценарии 2 одновременных транзакции

Непрочитанное сообщение cirik »

1. Описанный функционал без дополнительных, самописных DLL-ах не представляю возможным.
2. Возникла идея: в присылаемом ответе от хоста после первой успешной транзакции содержится номер стэйта, на который должен перейти сценарий банкомата. Обычно в сценариях это state J(close).
Так вот идея в том, чтобы переделать сценарий т.о. чтобы этот стэйт в сценарии был не J(close), а Е (Function Selection State). На экране предложить клиенту осуществить благотворительность, в случае подтверждения перейти на ветку сценария, где в amount buffer запишем 1 Долл., поправим Operation Code Buffer State(изменив там какой-то бит), сделаем формирование чиповых данных и пошлём ещё один Transaction Request. Все буфера(PIN, EMV, Track data) не обнуляются пока не было J(close), поэтому при повторном Transaction Request данные клиента сохранятся.
НО! это всё будет работать если на хосте настроено что сначала деньги, потом карта возвращается клиенту.
И опять-же, необходимо на хосте тоже поправить конфиги, чтобы правильно он воспринимал тип запроса, что прислал банкомат повторно.

3. вопрос к DcCtrl: объясни, пожалуйста, твою логику использования стэйта ’@D ’. Ты же имеешь в виду Enhanced Information Entry State?

Добавлено спустя 2 минуты 10 секунд:
Ещё один доп.вопрос. А как в Привате случается, если транзакция проходит быстро?
Ну когда Please Wait не долго показывается клиенту?

У нас на тех банкоматах что на хорошем канале сидят, это длится менее секунды :)
DcCtrl
Местный
Сообщения: 83
Зарегистрирован: 09 авг 2011, 01:03
Поблагодарили: 7 раз

Re: Как реализовать в сценарии 2 одновременных транзакции

Непрочитанное сообщение DcCtrl »

cirik :
1. Клиент в меню Fast Cash выбирает 10 USD.
2. Финт ушами - идёт переход не на стейт 'I', как можно было-бы ожидать, а на стейт '@D '
3. В этом стейте есть замечательные параметры #Screen1 и Operation Key X next state number. С помощью этих полей и делаем то, что нужно уважаемому gy1610
cirik
Новичок
Сообщения: 44
Зарегистрирован: 23 ноя 2010, 22:29
Благодарил (а): 3 раза
Поблагодарили: 7 раз

Re: Как реализовать в сценарии 2 одновременных транзакции

Непрочитанное сообщение cirik »

Всё равно не понял.
Пойдём мы не на 'I' а на '@D' клиенту всё равно необходимо нажать какую-либо FDK чтобы первый запрос на проведение опрерации ушёл.
И хорошо, клиент нажал какую-либо клавишу - что дальше произойдёт?

Насколько я понял, gy1610, хочет чтобы в момент когда уже запрос ушёл и показываем Please Wait скрин была активна клавиша, нажав ан которую клиент смог бы послать благотворительность. Поправьте, может я не так понял?
gy1610
Специалист
Сообщения: 410
Зарегистрирован: 21 апр 2011, 00:32
Откуда: Грузия, Тбилиси
Благодарил (а): 14 раз
Поблагодарили: 8 раз

Re: Как реализовать в сценарии 2 одновременных транзакции

Непрочитанное сообщение gy1610 »

cirik, Вы меня абсолютно правильно поняли. Но и вариант, предложенный уважаемым DcCtrl мне подходит. В принципе, клиент и не знает, ушла ли транзакция на хост во время показа экрана Please Wait, или банкомат ждёт действий со стороны клиента по какому-то timeout. Вариант с отложенным платежом по благотворительности это как раз то самое. И "@D" вроде тоже к месту. Главное теперь чтобы наш хост понял этот стейт. Кстати, если так стейт у вас применялся, пришлите мне, пожалуйста, его код, чтобы не возиться с синтаксисом.
FastCash, думаю, и не нужен особо. В Payment Server на благотворительность пропишу фиксированное значение 1USD, должно подхватить и передать в поле amount.
Кстати, при использовании "E" или "@D" стейтов автоматически снимается проблема с быстрой транзакцией. Т.е., экран по-любому Please Wait, но с таймаутом, а реальный Please Wait (I-state) будет после.
Ещё хочу сказать, что более интересен вариант с стороны хоста. Так что, вариант с банкоматом(создание DLL и прочее) пока можем не рассматривать.
И большая благодарность всем, кто откликнулся на мою просьбу. :so_happy: А получится запустить функционал, буду :so_happy: :so_happy: :so_happy: :)
0nscr33n
Новичок
Сообщения: 8
Зарегистрирован: 04 апр 2014, 20:43

Re: Как реализовать в сценарии 2 одновременных транзакции

Непрочитанное сообщение 0nscr33n »

Кстати, а получилось у Вас задуманное?
gy1610
Специалист
Сообщения: 410
Зарегистрирован: 21 апр 2011, 00:32
Откуда: Грузия, Тбилиси
Благодарил (а): 14 раз
Поблагодарили: 8 раз

Re: Как реализовать в сценарии 2 одновременных транзакции

Непрочитанное сообщение gy1610 »

Нет. Проект приостановили на неопределённое время. Может и совсем откажутся от него. Поэтому работать над проектом прекратил.
Ответить