
首先,我们假设我通过在POS终端刷xyk来获得此输出.
%B1234123412341234^CardUser/John^030510100000019301000000877000000?;1234123412341234=0305101193010877?
然后,根据此wiki link,我将此原始数据分类为Track 1,Format B和Track 2.
跟踪1格式B
%B1234123412341234^CardUser/John^030510100000019301000000877000000?
轨道2
;1234123412341234=0305101193010877?
然后,我将使用此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用于输入模式(你使用的是芯片,磁条,手动输入吗?)
这是你应该遵循的最低限度,但是,这取决于收单银行,他们需要的最低规格是什么
总结以上是内存溢出为你收集整理的c# – POS终端和银行之间的付款全部内容,希望文章能够帮你解决c# – POS终端和银行之间的付款所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)