Платеж между POS-терминалом и банком - PullRequest
3 голосов
/ 13 декабря 2011

Я хочу создать программу для общения между банком и POS-терминалами без использования сторонних инструментов.Давайте предположим, что в настоящее время эта программа будет использоваться только для разговора с конкретным банком через переключение банков IP-адрес + номер порта.

Во-первых, давайте предположим, что я получаю этот вывод, проводя кредитную карту в POSтерминал.

%B1234123412341234
^CardUser/John^030510100000019301000000877000000?;1234123412341234=0305101193010877?

Затем я классифицирую эти необработанные данные на дорожку 1, формат B и дорожку 2, согласно этой вики-ссылке .

дорожка1 Формат B

%
B
1234123412341234
^
CardUser/John
^
0305
101
00000019301000000877000000
?

Трек 2

;
1234123412341234
=
0305
101
193010877
?

Затем я буду использовать этот код для чтения этих форматов, используяпрограмма на C #.

protected void CardReader_OTC(object sender, EventArgs e)
{
    bool CaretPresent = false;
    bool EqualPresent = false;

    CaretPresent = CardReader.Text.Contains("^");
    EqualPresent = CardReader.Text.Contains("=");

    if (CaretPresent)
    {
        string[] CardData = CardReader.Text.Split('^');
        //B1234123412341234^CardUser/John^030510100000019301000000877000000?

        PersonName.Text = FormatName(CardData[1]);
        CardNumber.Text = FormatCardNumber(CardData[0]);
        CardExpiration.Text = CardData[2].Substring(2, 2) + "/" + CardData[2].Substring(0, 2);
    }
    else if (EqualPresent)
    {
        string[] CardData = CardReader.Text.Split('=');
        //1234123412341234=0305101193010877?

        CardNumber.Text = FormatCardNumber(CardData[0]);
        CardExpiration.Text = CardData[1].Substring(2, 2) + "/" + CardData[1].Substring(0, 2);
    }
}

После всего вышеприведенного кода, я думаю, мне нужно использовать протокол обмена сообщениями ISO 8583 для отправки моих данных в банк.

Myданные будут включать

  1. дорожка 1 + информация дорожки 2.
  2. Сумма денег, которую необходимо снять для любого вида процесса покупки.

Я хочу, чтобы 2 из этих пунктов были включены в сообщение ISO, которое я отправлю в банк.

Мои вопросы:

  1. Это правильный бизнес-поток для взаимодействия с банком?Я хотел бы получить какие-либо предложения.

  2. Можно ли объединить два из этих элементов в одном сообщении ISO, которое будет отправлено в банк?

Пожалуйста, дайте мне предложения, любые ссылки или любые веб-ссылки.

Ответы [ 2 ]

5 голосов
/ 31 декабря 2011

если вы хотите использовать формат сообщения ISO 8583, вам нужно передать информацию о карте в одно из следующих полей:

DE2 = номер карты DE35 = дорожка II DE45 = дорожка I

вы можете передать DE2 с DE35 или De45, но никто не сдал и 35, и 45

, затем вам нужно передать дату истечения срока, которая хранится в DE14

, вам также нужнопередать тип транзакции, это первые 2 цифры DE3, и это будет 00 для покупок, 11 для ручных наличных, остальные могут быть либо 0000, либо, если вы укажете тип счета, цифры 3 и 4 будут представлять счеттип, остаток должен быть 00, так как в этих транзакциях нет To-Account

вам нужно передать сумму в поле DE4

вам нужно передать номер трассы в DE11

поля DE41, DE42 и DE43 также используются для идентификации используемого вами терминала и продавца, владеющего таким терминалом

поля DE7, DE12 используются для указания даты / времени транзакцииion

Поле DE49, используемое для указания валюты транзакции

Поле DE18 важно для указания кода категории продавца POS-терминала, который вы используете, и какой тип деятельности следует за этим продавцом

DE19 может использоваться для указания страны

DE25 для режима ввода (используете ли вы чип, магнитную полосу, ручной ввод?)

это минимум, которому вы должны следовать, однако, зависит от банка-эквайера, какие спецификации им требуются минимум

2 голосов
/ 01 августа 2013

Я не знаю, поможет ли это вам сейчас или нет.Прошло уже более 2 лет, и Вы могли бы найти решение этой проблемы. Тем не менее я пытаюсь дать краткое описание:

Во-первых, когда карта (дебет / кредит) была проведена в центре MSRPOS-терминал, а затем данные карты с T1 и T2 используются для формирования пакета ISO 8583.

Вы должны решить, какую версию ISO 8583 вы будете использовать, и за ней должен следовать платежный переключатель, по которому будет действовать ваша POS.

Допустим, вы используете ISO8583 v2003.

Теперь при считывании карты ваш POS-терминал сформирует пакет ISO8583, зашифрует его и отправит на коммутатор платежей по безопасному туннелю (TCP-IP).Теперь этот коммутатор будет подключен к платежному шлюзу (он может быть подключен к банкам или к одному или нескольким PG), и запрос будет перенаправлен на PG из коммутатора платежей.

После авторизации и аутентификации PG ответитвернуться к запросу через платежный коммутатор на POS-терминал.

Обратите внимание: 1. Ваш POS-терминал должен иметь сертификат PCI PTS POI для легального считывания любых карт VISA / MC / Amex 2. PCI PTS предъявляет требования безопасностии они должны соответствовать вашему устройству. 3. Стандарт ISO 8583 имеет разные MTI для разных типов финансовых запросов.Например, для продажи вы должны отправить MTI 200/210, для обращения MTI 420/430, для входа в систему и обмена ключами MTI 804/810 и т. Д.

Вы должны обладать глубокими знаниями стандарта 8583 дляформы Пакеты данных.

Если вы хотите, чтобы я объяснил требования безопасности или больше о ISO8583, сообщите мне.

...