网站开发费属于研发支出吗,宁波seo优化排名,wordpress汉化杂志主题,WordPress文章多图分页摘要
老王的杂货店里货很多#xff0c;国产的#xff0c;进口的#xff0c;不同种类、不同品牌、不同型号的货#xff0c;应有尽有。 货多了#xff0c;老王就弄了个小本本记下店里卖的货有哪些#xff0c;记得很详细#xff0c;包括有哪些种类#xff0c;每个种类里有…摘要
老王的杂货店里货很多国产的进口的不同种类、不同品牌、不同型号的货应有尽有。 货多了老王就弄了个小本本记下店里卖的货有哪些记得很详细包括有哪些种类每个种类里有什么品牌品牌里有什么型号甚至具体到规格、颜色。客人来要货老王记不清的时候看看本就知道有没有。可是这生意就和生活一样一个问题解决了又来一个问题关关难过关关过。
大多数情况都挺好可是时间长了老王就发现有些问题。按道理老王的小本本上记录有的货就肯定有即使有时候卖得太好货没了老王找找供应商也就可以补货了。但有好几次客人要指定型号的货老王店里货卖没了需要找供应商补货理论上肯定能补到货但结果询问的供应商也没有既耽误了客人时间自己也做了无用功。为什么店里明明记着有供应商那边却没有呢?复盘发现原因是问错了供应商。
刚开始发展的时候供应商也就那一个不存在找哪个供应商订货的问题;后来店开久了供应商也多了同样的品牌江西和江苏的供应商都有。但是各个供应商都有一些当地特供有的型号只有江苏供应商有江西的没有;有的型号只有江西的供应商有江苏的没有。
问题找到后老王开始亡羊补牢把 PDCA计划—执行一检查-处理).方法论运用得淋漓尽致。既然问题出在供应商上老王就在小本本上原来记录的内容上加上了供应商以及他们能提供的具体产品型号这样就不会再做无用功保证联系的供应商就肯定能支持。老王小本本的改变其实就是BIN服务。
老王用小本本管理各商品类目相当于支付中BIN管理的过程;老王小本本记录的格式相当于支付中BIN表字段结构设计的过程;老王根据自己记录的商品品牌、型号去联系具体供应商补货相当于支付中通过BIN服务判定通道支持能力把交易请求送到支持的通道,从而提高支付成功率。
一、BIN是什么
大家看看自己身边的银行卡看看它们有什么差别。
首先如果你身边有多张银行卡你会发现这些银行卡的发卡行不一样它们有的来自同一家银行有的来自不同银行。比如有的银行卡的发卡行是招商银行有的是农业银行。其次你会发现这些卡的卡性质不--样有的是信用卡有的是借记卡。比如你在某行办了两张银行卡一张借记卡用作工资卡一张信用卡用于消费它们的特性不一样。再者这些卡即使来自同一家银行它们的卡级别、卡名称可能都不一样。比如你可能既有某家银行的普通卡又有这家银行的白金卡它们的级别是不同的;又如你有某家银行与东方航空的联名信用卡叫作“某行东航联名信用卡”而你同事的信用卡虽然与你的来自同一家银行但他的叫作“某行南航联名信用卡”因为他偏好南航。你们这两张卡虽然都是某家银行同一级别同一性质的卡但是背后的福利、名称、卡面设计都不一样。不同点还有很多、比如卡组织不一样(有的卡组织是银联有的是 Visa)、有公私区分有的是公务卡有的是私人卡)这里不再展开。
对于这些不同的卡银行和支付平台是怎么通过用户输入的卡号获取对应银行卡的开户行、卡级别、随卡福利等信息的呢?
答案是通过BIN ( Bank Identification Nunber.发卡行标识码〕服务实现BIN服务是一种通过对BIN进行管理并提供外部查询用于识别和判断卡所属银行、卡组织、卡级别的支持服务。 我们再看看身边的银行卡每张卡的卡号都是唯一的且由三类属性构成:发卡行标识码、发卡行自定义位、检验码。如下图所示为一张招商银行借记卡其卡号为6214 8321 9171 7276无效卡仅作演示用)总共16位数字具体结构如下。
第1~6位是4514这就是这张招商银行借记卡的BIN。62开头的银行卡是银联卡这意味着这个卡号是银联作为卡组分配给招商银行的BIN。第7~15位为发卡行自定义位这里的121654738就是招商银行分配给某个用户用于识别不同卡、不同用户的标识。最后一位(第16位为检验码用于验证此卡为真实卡、有效卡比如应用Luhn算法进行验证。
在图所示卡号的构成中BIN是基础是最为重要的构成用于识别出一张卡的所属银行。形容支付系统与BIN的关系,九层之台起于累土。我们可以把支付系统看作“九层之台”把支付路由服务、通道服务等支付机制看作每一层或大或小的平台那么构建起这些平台的“累土”就是BIN。
通过BIN不仅可以知道一张卡是由哪家银行发行的还可以知道卡类型、卡种这就是为什么大家在一些网站进行支付或者绑卡输入银行卡号时只输入前几位数字网站就显示了具体的银行卡名称。
BIN一般由6位数字组成。2014年年底国际标准化组织(ISO)已经将BIN由6位数字调整到8位数字。目前绝大部分国内银行卡的BIN码是6位。BIN第1位为发卡行业标识号( Major Industry IdentifierMII)代表的是发卡机构所属行业。不同MII代表的行业见表。
标识所在行业0ISO/TC68和其他行业1航空2航空和其他行业3运输、娱乐和金融财务4金融财务5金融财务6商业和金融财务7石油和其他行业8医疗、电信和其他行业9有本国标准机构分配
在中国银联建立之前我国各银行发行的银行卡基本只能在国内使用因为其不符合国际标准或者是按照表6-1中所列举的具体情况——由本国标准机构分配发行的大多数为9开头的卡号。
现在已经很少见到9开头的卡号但这类卡在当初是有历史意义的。为了推动国家的“金卡工程”实现全国的银行卡业务规范和标准统一中国人民银行在2000年特别发布342号文《中国人民银行关于颁布〈银行卡发卡行标识代码及卡号〉和〈银行卡磁条信息格式和使用规范〉两项行业标准的通知》其中规定发卡行标识码第一位固定为9。
在2000年342号文颁布后因为标准的建立与规范国内银行卡互联互通发展迅速。到2001年年底全国银行卡发行量已经达到3.83亿张特约商户超过15万家,POS终端21.8万台ATM 3.8万台当年交易总金额达到8.43万亿元银行卡消费占社会商品零售额的比重提高到了2.7%。这些数据表明社会对银行卡的接受程度越来越高银行卡使用更为广泛。342号文在当时的历史背景下意义重大。BIN由国际标准化组织( International Organization forStandardization , 1SO分配给各从事跨行转接交换的银行卡组织再由卡组织分配给各组织内银行分配顺序见图6-2。 在2002年之前我国是没有卡组织的银行卡只能在国内使用国际支付银行卡大多是使用Visa、Mastercard、JCB、美国运通等国外卡组织的银行卡。
2002年3月经过国务院同意中国人民银行批准设立了中国银联简称“银联”)。银联有很多职能其中有项是统银行卡跨行技术标准和业务规范,实现系统间互联互.通和资源共享保征银行卡跨行、跨地区和跨境的使用。
这样的目标与职能促使银联在2003年8月推出“62”BIN的银联标准卡并在日后逐步实现国内银行发行的内卡均为统一标准银行卡也就是62开头。银联也成为BIN注册机构国内银行在发行卡时需要向银联提出BIN分配申请。
银联标准卡62的BIN不仅是国内规范的统一也是我国银行卡由国内可用走向国际通用的一步。银联按照ISO国际标准进行申请由ISO分配给银联以62开头的BIN银联根据ISO分配 BIN进行再分配分配给各发卡行。
至此国际有了六大卡组织:中国银联股份有限公司( UnionPay)、万事达卡国际卡组织(Mastercard)、维萨国际卡组织( Visa)、美国运通国际股份有限公司 AE)、日本国际信用卡公司JCB和大莱信用卡有限公司(Dincrs Club)。按照ISO分配情况。
卡组织中文名卡组织英文名字卡号范围银联Union Pay620000-629999维萨Visa400000-499999万事达Mastercard510000-559999日本国际信用卡JCB352800-358999大莱Diners Club300000-305999309500-309599360000-369999380000-399999美国运通American Express340000-349999370000-379999
二、BIN的表的设计
每一张银行卡的诞生标准流程是发下行问对应卡纽织串请对应BTN,而卡组织的BIN由ISO分配发卡行拿到对应BIN后再去生成卡号、发绘持卡人。
如老王开店的故事一样ISO 就相当于老王的杂货铺用不同的商品编号来代表不同种类的商品。 银行卡就像生活百货这样比较大的领域老王大手一挥就划定了几个号段给生活百货。
卡组织就像生活百货的各个具体种类比如衣服、食品等哗的一声老王就又从生活百货里划了几个号段给各个品类。
具体银行的卡种就像每个品类的厂商如食品中的康师傅、统一抽纸用品里的清风、心相印哗的一声老王又从每个品类的号段中分配一些给了各厂商的一些品牌。
康师傅红烧牛肉面的商品编号就像招商银行信用卡的BIN商品条码后面的长度定义了这个产品最大产量和标准格式。比如招商银行16位的卡去掉最后一-位校验码和前面6位BIN还有9位代表这个卡最多只能发行999 999 999张。
除此之外还要考虑的一个问题是同样的产品是有不同的供应商的比如康师傅红烧牛肉面既有江苏的供应商又有江西的供应商既有A厂生产的又有B厂生产的。每个供应商供应的面品种可能重叠也可能有不一样的地方同样每个工厂生产的品种可能一样也可能不一样。就像支付里支付品牌对应的支付通道一样。招商银行信用卡会存在不同的支付通道这些支付通道的支付能力可能不一样、也就是支持的卡种不一样.支持的BIN段不样.国此在这种多供应商、多品种的情况下.还需要划出编号来区分不同的供应商。
通道与BIN服务的关系是很多人在进行BIN服务设计时最容易忽视或者因为没有经验而忽略的地方﹒大家日常在线下或者线上进行卡类支付时如果留心前端报错信息或者支付通道返回的错误码会看到这样的文案“BIN校验不通过”“卡号错误”“卡类型不对”也可能直接就是“支付失败”等。造成这种情形的原因有很多比如以下3条
卡号错误。这包括卡号不存在、卡位数不对等原因。卡号正确但卡类型错误或者银行错误。比如拿着借记卡却选成了信用卡进行交易系统把农业银行信用卡当作工商银行卡送到了工行通道进行交易。BIN不支持不管是通道出子港后刊4朵维护新的BIN 、还是其文付能力受限不支持此卡所对应的BIN只要通道不支持的BIN|送交易到点付通.道结染就公失败就像你去一家不是手冲店的星巴克店买手冲咖啡不管去多少次、买多少杯都会失败,都会买不到因为你去的店根本不具备这个能力。
支付从业人员如果要获取完整的BIN信息可以联系具体卡组织、发卡行和通道服务商。这三者提供的BIN信息既有共同的部分又有各自独有的部分它们的并集构成了全集。
卡组织提供该组织下最为完整的各发卡行BIN信息.比如银联提供使用银联标准卡的各发卡行招商银行、工商银行等)的各类型卡经典卡、借记卡金卡等的BIN信息但其无法提供其他卡组织(Visa、Mastercard等)的BIN信息。
发卡行提供该银行下最为完整的各卡种BIN信息:比如招商银行作为发卡行既发行银联卡也发行Visa 卡、Mastercard卡因此招商银行提供的BIN信息不仅包含银联的也包含其他卡组织的但是其无法提供其他发卡行的BIN信息。
通道服务商提供该通,道支付能力以内的BIN 信息,拿第三方支付通道服务商举例它提供的支付能力有多银行、多卡种比如既支持招商银行又支持工商银行;同时支付能力也可能支持多卡组织比如支付宝既能支持银联卡又能支持万事达卡。通道服务商提供的BIN信息是由其支付能力覆盖范围而定的既涵盖多家银行又包括不同卡组织。通道服务商的缺陷在于其支付能力是有限的不可能穷举全世界甚至只是全国所有银行的所有卡种所以其无法提供不在其支付能力覆盖范围内的BIN信息。
当然还有些第三方网站提供查 BIN这里不再列举大家可以在网上自行搜索。根据以上所述在进行BIN服务设计时有两种方案:一种与通道无关用于相对简j单场景,比如单通道场景一种与通道有关用来精确匹配、尽可能保证通道可用性。
2.1 不涉及通道方案
假设以招商银行作为发卡行发行卡种为携程联名信用卡和东航联名信用卡则其方案表结构见表。
银行名称卡种名称卡类型卡等级BIN长度卡号长度BIN段开始BIN段结束是否有效BIN图片是否为外卡招商银行携程联名信用卡信用卡普卡616620000629999有效默认否招商银行东航联名信用卡信用卡白金卡616630000639999有效默认否
在这种方案中涉及的字段有银行名称、卡种名称、卡类型、BIN长度、卡号长度、BIN段开始、BIN段结束、是否有效、BIN图片、是否是外卡。具体字段说明如下。
银行名际用于表示在BIN识别时识别的发卡行或卡组织如表中的招商银行。卡种名称用于表示该银行的具体卡种,如表6-3中的携程联名信用卡、东航联名信用卡。这样的卡种区分可以用于营销合作展示不同权益或结合图片展示不同的卡界面就像实物一样增强体验。卡类型用于表示卡的借贷属性卡类型有借记卡、贷记卡和准贷记卡。该字段用于判断卡类型供支付系统识别进行不同支付逻辑处理。比如充值业务只支持使用借记卡进行支付需要屏蔽贷记卡。卡等级用于表示具体卡的等级属性。卡等级可结合营销用于做数据挖掘、会员权益等活动。BIN长度用于表示BIN的长度。根据BIN长度截取卡号对应位数号码与 BIN表进行匹配。卡号长度用于表示该卡种的卡号长度。将卡号长度结合其 BIN信息、校验码算法可以进行匹配并判断用户输人卡号是否有效进而拦截无效卡号。BIN段开始和BIN段结束用于匹配BIN具体值区间。每个卡种的BIN区间都不一样也不一定是连续的。如果遇到不连续的BIN信息在设置BIN表的时候需要录入多条卡数据。比如大莱卡的BIN段有300000~305999、309500~309599、360000~369999、380000~399999这样的BIN 段就需要设置多条数据。是否有效BIN 数据的有效性。用于筛选系统有效数据避免进行无效匹配。BIN 图片展示具体卡种图片。结合卡种名称一起为用户带来真实卡片的感受。如果没有相关图片可以设置默认图片用来向用户展示该行图片是否是外卡用于标记卡片的内外卡属性。内外卡属性很重要第⒉章介绍了支付过程如何避免“内卡外收”以及外卡的支付特点如3DS安全认证、动态汇率转换等知识。要避免这些错误和实现这些功能必须先正确识别其卡属性而识别的依据就是BIN数据。
这样的 BIN表设计就能够满足单一通道场景了。这种设计的优点是只与卡种相关维护简单缺点是覆盖场景不足。
2.2 涉及通道方案
支付有不同的场景比如机票、酒店在这些场景中需要用到不同的交易类型,比如机票用到的交易类型是消费而酒店除了用到消费交易类型还会用到预授权交易类型。不同的支付通道能力不一样大多数规模以上企业从降成本、备份角度考虑也会接人多家通道如果还沿用第一种方案就不能满足需求甚至是有缺陷的。
在前面中介绍过路由有各类算法逻辑来匹配最优通道而最优通道的前提首先是可用性即将交易上送给通道后不能返回“卡号错误”“BIN 不支持/该卡暂不支持”之类的返回码于是就有了涉及通道的BIN表方案。
假设以招商银行作为发卡行发行卡种为携程联名信用卡但是支持的通道有银联和招行直连则其表结构见表。多了一个字段“通道名称”。如我们在表中所见同样的招商银行携程联名信用卡它的BIN全集是620000~629998。通过前面的内容我们知道所有的支付方式都是通过支付通道来支持的。
通道名称银行名称卡种名称卡类型卡等级BIN长度卡号长度BIN段开始BIN段结束是否有效BIN图片是否为外卡银联招商银行携程联名信用卡信用卡普卡616620000629999有效默认否招行直连招商银行东航联名信用卡信用卡白金卡616630000639999有效默认否
如表所示招商银行携程联名信用卡的两个通道均可以支持其交易、分别是银联直连通道与招行直连通道两者的BIN范围不同这里就有了两条数据。
2.3 方案设计案例
我们通过以下案例进一步讲解上述两种设计方案。前置条件如下。
客户使用招商银行信用卡交易BIN为620000。可用支付通道有两个:银联通道支持BIN为620000~629998;招行直连通道支持BIN为620001~629999。招行直连通道费率为0.1%银联通道费率为0.3%。路由中仅有按成本路由。
方案一BIN不涉及道通道方案
判断该卡是否支持时按照设计会判断BIN是否支持,经过校验BIN服务支持该BIN;判断最优通道因为招行直连通道费率 0.1%低于银联通道 0.3%)在没有其他算法参与的情况下招行直连通道是最优通道。
路由算出最优通道,用户按照招行通道需要提交卡信息上送通道处理。
最后结果是什么呢?支付失败。银行返回错误码“卡号错误”或“BIN不支持/该卡暂不支持”。其原因在于620000的BIN段虽然是招商银行信用卡但是直连通道并不支持此BIN段。BIN服务设计中只体现了该卡与 BIN的关系并没有体现通道与BIN的关系系统无法判断是否支持。
方案二BIN涉及通道方案 判断该卡是否支持时按照设计会判断BIN是否支持经过校验,BIN服务支持该BIN且支持的通道只有一个为银联通道。判断最优通道因为只有一个通道可用所以最优通道就是银联通道。
路由算出最优通道用户按照招行通道需要提交卡信息上送通道处理。最后结果是什么呢?支付成功。银行返回返回码“交易成功”。其原因在于BIN服务设计保证了每个通道与BIN号段对应保证了可用性。
三、卡号校验算法
BIN是卡号的一部分。在用户输人卡号时输入前6~9位我们可以通过BIN提前判断出对应银行及卡号是否有通道支持。那么在用户输入完卡号之前我们能否先检验出这个卡号是否有效或者在测试的时候有没有一定的规则能模拟出卡号来?
答案是有的这个卡号规则就是需要符合Luhn算法也称为“模10算法”它是一个专门用于验证银行卡号有效性的算法。Luhn算法由美国IBM科学家Hans Peter Luhn于20世纪60年代发明对所有大型卡公司发行的银行卡都起作用无论是我国的银联还是国外的美国运通、Visa、Mastercard、JCB等卡组织甚至护照、社会保险号都符合这个算法。需要说明的是这个算法并不是为了加密而是为了防止意外出错。
银行卡验证Luhn算法的规则如下
从卡号最后一位数字开始逆向将奇数位相加;从卡号最后一位数字开始逆向将偶数位数字先乘以2(如果乘积为两位数则将其减去9)再求和;将奇数位总和加上偶数位总和结果应该可以被10整除。
博文参考
《支付方法论》