POS终端和银行之间的支付

时间:2011-12-13 08:19:51

标签: c# payment credit-card bank iso8583

我想在不使用任何第三方工具的情况下制作银行和POS终端设备之间的通话程序。我们假设,目前,该程序仅用于通过银行交换IP地址+端口号与特定银行通话。

首先,让我们假设我通过在POS终端刷信用卡来获得此输出。

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

然后,根据此wiki link,我将此原始数据分类为Track 1,Format B和Track 2。

跟踪1格式B

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

第二轨道

;
1234123412341234
=
0305
101
193010877
?

然后,我将使用此code来使用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 messaging protocol将数据发送到银行。

我的数据将包含

  1. Track 1 + Track 2信息。
  2. 任何类型的采购流程都需要提取资金。
  3. 我希望其中2个项目包含在ISO信息中,我将发送给银行。

    我的问题是:

    1. 这是与银行互动的正确业务流程吗?我想得到任何建议。

    2. 是否可以在一条ISO消息中合并其中两个项目,这些消息将转到银行?

    3. 请给我建议,任何参考或任何网站链接。

2 个答案:

答案 0 :(得分:5)

如果您要使用ISO 8583消息格式,则需要在以下某个字段中传递卡信息:

  • DE2 =卡号
  • DE35 =第二轨道
  • DE45 =跟踪I

    您可以使用DE35或De45传递DE2,但没有人通过35和45

    接下来你需要传递到期日期,该日期存储在DE14

    你还需要传递这是什么类型的交易,这是DE3的前2位数,购买时为00,手动现金为11,剩下的可以是0000,或者如果你指定账户类型那么数字3和4将代表帐户类型,休息应为00,因为这些交易中没有To-Account

    您需要在DE4

    字段中传递金额

    您需要在DE11中传递跟踪号

    字段DE41,DE42和DE43也用于识别您正在使用的终端以及拥有此类终端的商家

    字段DE7,DE12用于指定交易日期/时间

    字段DE49用于指定交易货币

    字段DE18对于指定您使用的POS终端的商户类别代码非常重要,这是该商家遵循的活动类型

    DE19可用于指定国家/地区

    进入模式的DE25(您使用的是芯片,磁条,手动输入吗?)

    这是您应该遵循的最低要求,但是,这取决于收单行,他们需要的最低规格是什么

  • 答案 1 :(得分:2)

    我知道现在是否会帮助你。因为它已经超过2年了,你可能已经找到了解决方案..我仍然试图给出简短的描述:

    首先,当在POS终端的MSR头上刷卡(借记/贷记)时,从T1& T2用于形成ISO 8583分组。

    您必须决定您将使用哪个版本的ISO 8583,并且必须遵循您的POS将要访问的付款开关。

    让我们假设您使用的是ISO 8583 v2003。

    现在刷卡时,您的POS终端将形成ISO8583数据包,加密并通过安全隧道(TCP-IP)发送到支付交换机。现在这个交换机将连接到支付网关(它可以连接到银行,或者一个或多个PG),请求将被转发到支付交换机的PG。

    授权和认证后,PG将通过支付开关向POS终端回复请求。

    需要注意的一点: 1.您的POS终端应通过PCI PTS POI认证,合法刷任何VISA / MC / Amex卡 2. PCI PTS具有安全要求,您的设备应遵守这些要求 3. ISO 8583标准针对不同类型的财务请求具有不同的MTI。对于SALE,你必须发送MTI 200/210,用于反转MTI 420/430,用于登录和密钥交换MTI 804/810等。

    你必须具备8583标准的深厚知识才能形成数据包。

    如果您希望我解释有关ISO8583的安全要求或更多信息,请与我们联系。