
卡片钱包卡号规则&&生产流程
Hello , 我是09
此篇内容为我2018~2020年在【库神】工作时,对部分重要知识做的学习总结
随着比特币冲破10万美金,行业又再次兴起,希望相关从业者可以学习到你需要的内容
如果你的公司正准备生产卡片式钱包,你不知道从何入手的话,Let's go.
卡式钱包卡号规则
每张卡片钱包要有自己的独一无二的卡号,就和银行卡一样,卡号既可以用来后台做记录 ,又可以快速区分卡的型号、批次、支持币种、防伪验证等。那么卡号是如何编写的呢 ?
卡号由以下结构组成:
CL T2 0107 0000 001 X
CL + 发行商卡号 + 型号 + 批次号 + 系列号 + 最后一位luhn校验码
计算校验码由以下结构组成:
0107 0000 001 X
型号 + 批次号 + 系列号 + 最后一位luhn校验码
将计算校验码用到的数据组成到一块:
01070000001X
紧接着从右向左,所有的偶数位乘以2,如果乘积为两位数,那么将两位数拆开后相加,将所有偶数位乘积后的结果相加到一块 再加上 校验码X,使整体的值取膜于10后,结果为0,方为正确的卡号。
例1:错误卡号
原始数据
CLT2010800000018
原始数据 从右往左 乘以2 后
CLT2010800000028
型号 + 批次号 + 系列号 + 最后一位luhn校验码
0108 + 0000 + 002 + 8 = 1 + 8 + 2 + 8 = 19
19 % 10 = 9, 不等于0 ,所以卡号错误
例2:正确卡号
原始数据
CLT2010800000019
原始数据 从右往左 乘以2 后
CLT2010800000029
型号 + 批次号 + 系列号 + 最后一位luhn校验码
0108 + 0000 + 002 + 9 = 1 + 8 + 2 + 9 = 20
20 % 10 = 0, 等于0,所以卡号正确
以下正确卡号例子
CLT2010800000019
CLT2010800000027
CLT2010800000035
CLT2010800000043
CLT2010800000050
卡生产流程
版面印刷 — 压卡 — 烧录 — 卡号内置(烧录程序的时候需要提供两个接口,给厂商写入卡号,读取卡号) — 卡读取 — 镭卡号(刻录卡号到卡片上)
我们 做的 包括 cos 程序 + 写入 + 读取
卡片钱包与App交互协议
交互方案具体要根据实际项目情况,但至少要具备以下几点内容:
传输协议
指令包格式
基础功能指令交互数据
创建钱包
恢复钱包
签名交易
传输协议中有包括:指令、种子类型、芯片状态、工作模式、公钥格式、分层确定性算法类型等
.1) 指令,在数据参数中参数名称为“Method”。
所有的指令都是in + out,热端发起哪个指令,返回的数据也是哪个指令。
2 ). 种子类型
类型名称:SeedType
3 ). 芯片状态
类型名称:Status
以上均为举例说明,如果你需要09提供一些建议,请留言
卡生产周期
第一阶段
厂商给我们提供样卡2~4张,需要我们提供测试cos程序,只用作测试写入和读取卡号。
第二阶段
签订合同起30天内厂商给我们提供200张样卡,35日内我们要提供给厂商最终cos程序。
第三阶段
样卡200张全部收到后,60天内(具体时间需要根据各自的实际情况来电),对方交付完成全部产品。
总结
卡片钱包生产一般会有偶发性的问题,200张样卡需要测试人员拿到后疯狂测试并及时和厂商反馈。
流程上并没有复杂的地方,当然这是指在一系列有效的沟通基础上。
卡片钱包和手机App的数据交互是真正的关键点,加密方式,BTC如果一笔交易中的UTXO过多,卡片钱包是否能支持,支持的数据长度,卡片存储内容,等等,需要根据实际的项目情况来定制。