3

サードパーティのツールを使用せずに、銀行と POS 端末デバイス間で通信するプログラムを作成したいと考えています。現在、このプログラムは、バンク スイッチング IP アドレス + ポート番号を介して特定のバンクと通信するためにのみ使用されると仮定しましょう。

まず、POS 端末でクレジット カードをスワイプしてこの出力を取得したとします。

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

次に、このwiki リンクに従って、この生データをトラック 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 メッセージング プロトコルを使用してデータを銀行に送信する必要があると思います。

私のデータには以下が含まれます

  1. トラック 1 + トラック 2 の情報。
  2. あらゆる種類の購入プロセスで引き出す金額。

これらの項目のうち 2 つを、銀行に送信する ISO メッセージに含める必要があります。

私の質問は次のとおりです。

  1. これは銀行とやり取りするための正しいビジネス フローですか? 何か提案があればお願いします。

  2. これらのアイテムの 2 つを 1 つの ISO メッセージにまとめて、銀行に送ることはできますか?

提案、参考文献、または Web リンクを教えてください。

4

2 に答える 2

6

ISO 8583 メッセージ形式を使用する場合は、次のフィールドのいずれかにカード情報を渡す必要があります。

  • DE2 = カード番号
  • DE35 = トラック II
  • DE45 = トラック I

    DE2 は DE35 または De45 で合格できますが、35 と 45 の両方に合格した人はいません

    次に、DE14 に保存されている有効期限を渡す必要があります。

    また、DE3 の最初の 2 桁であるトランザクションの種類を渡す必要があります。購入の場合は 00、手動現金の場合は 11、残りは 0000 にするか、アカウントの種類を指定する場合は 3 と4 は口座タイプを表し、これらの取引には To-Account がないため、残りは 00 である必要があります。

    フィールドDE4に金額を渡す必要があります

    DE11 でトレース番号を渡す必要があります

    フィールド DE41、DE42、および DE43 は、使用している端末と、そのような端末を所有している加盟店を識別するためにも使用されます。

    フィールド DE7、DE12 は、トランザクションの日時を指定するために使用されます

    トランザクションの通貨を指定するために使用されるフィールド DE49

    フィールド DE18 は、使用する POS 端末のマーチャント カテゴリ コードを指定するために重要です。これは、このマーチャントが従う活動のタイプです。

    DE19 を使用して国を指定できます

    エントリーモードはDE25(チップ、磁気ストライプ、手入力ですか?)

    これは最低限従わなければならないことですが、取得銀行によって異なります。最低必要な仕様は何ですか

  • 于 2011-12-31T07:55:59.423 に答える
    3

    それが今あなたを助けるかどうかはわかりません。2年以上経ちましたので、これに対する解決策を見つけたかもしれません.. それでも私は簡単な説明をしようとしています:

    最初に、カード (デビット/クレジット) が POS 端末の MSR ヘッドに通されると、T1 と T2 からのカード データの詳細を使用して、ISO 8583 パケットが形成されます。

    使用する ISO 8583 のバージョンを決定する必要があり、その後に POS がヒットする支払いスイッチを指定する必要があります。

    ISO 8583 v2003 を使用していると仮定します。

    カードが通されると、POS 端末は ISO8583 パケットを形成し、それを暗号化し、安全なトンネル (TCP-IP) 経由で支払いスイッチに送信します。これで、このスイッチは支払いゲートウェイ (銀行または 1 つ以上の PG に接続できます) に接続され、リクエストは支払いスイッチから PG に転送されます。

    承認と認証の後、PG は POS 端末への支払いスイッチを介して要求に応答します。

    注意点: 1. VISA/MC/Amex カードを合法的にスワイプするために、POS 端末は PCI PTS POI 認定を受けている必要があります。財政要求の。セールの場合は、MTI 200/210、リバーサル MTI 420/430、サインオンとキー交換 MTI 804/810 などを送信する必要があります。

    データ パケットを形成するには、8583 規格に関する深い知識が必要です。

    ISO8583 に関するセキュリティ要件や詳細について説明してほしい場合は、お知らせください。

    于 2013-08-01T07:50:14.760 に答える