加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – POS终端和银行之间的付款

发布时间:2020-12-16 01:49:55 所属栏目:百科 来源:网络整理
导读:我想在不使用任何第三方工具的情况下在银行和POS终端设备之间进行程序交谈.我们假设,目前,该程序仅用于通过银行交换IP地址端口号与特定银行通话. 首先,我们假设我通过在POS终端刷信用卡来获得此输出. %B1234123412341234^CardUser/John^03051010000001930100
我想在不使用任何第三方工具的情况下在银行和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
?

轨道2

;
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将数据发送到银行.

我的数据将包括

> Track 1 Track 2信息.
>对于任何类型的购买流程,金额都可以提取.

我希望其中2个项目包含在ISO消息中,我将发送给银行.

我的问题是:

>这是与银行互动的正确业务流程吗?我想得到任何建议.
>是否可以在一条ISO消息中组合其中两个项目,这些消息将转到银行?

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

解决方法

如果您要使用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用于输入模式(你使用的是芯片,磁条,手动输入吗?)

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读