var icData = new ICData();

var deviceResult = crd.CRDICPowerOn();
if (!deviceResult.IsSuccess)
return null;

var result = crd.CRDPBOCInit();
if (!result.IsSuccess)
return null;

var pseResult = crd.CRDPBOCGetPSEAID("1PAY.SYS.DDF01");
if (!pseResult.IsSuccess)
return null;

var selectADFResult = crd.CRDPBOCSelectADF(pseResult.Result.AId);
if (!selectADFResult.IsSuccess)
return null;

var afl = crd.CRDPBOCGetProOption(0, 0);
if (!afl.IsSuccess)
return null;

var readAppdata = crd.CRDPBOCReadAppData(afl.Result);
if (!readAppdata.IsSuccess)
return null;

var readTrackInfo = crd.CRDPBOCGetTrack2Data();
if (!readTrackInfo.IsSuccess)
return null;

var cardNumber = crd.CRDPBOCGetICInfo(BaseInfoType.CardNo);
if (!cardNumber.IsSuccess)
return null;

var initForLoad = crd.CRDPBOCInitForLoad();
if (!initForLoad.IsSuccess)
return null;

var trackInfo = readTrackInfo.Result.Track2Data.Split('=');
icData.凭证代号 = trackInfo.Count() == 2 ? "26" + trackInfo[1].Substring(10, 7) : "";
icData.卡号 = cardNumber.Result.CardNo;
icData.卡号序号 = cardNumber.Result.CardNoIndex;
icData.安全认证信息 = crd.CRDPBOCReadIcTLV(initForLoad.Result.CardNoAndIndex, initForLoad.Result.ARQCRawData, initForLoad.Result.ARQCData);

.....发送报文获取IC卡写卡脚本
根据行内返回脚本能需要调用外部认证(SS_CRD_PBOCExternalAuth)
也可能在执行脚本方法做认证(不需要交易调用外部认证方法)

var exeScirpt = crd.CRDPBOCExecScirpt(response.脚本);
TradeLogger.DebugFormat("ExecScirpt结果:{0}", exeScirpt.Result);
if (!exeScirpt.IsSuccess)
{
writeCardIsSuccess = false;
}
var finishLoad = crd.CRDPBOCFinishLoad();
TradeLogger.DebugFormat("FinishLoad结果:{0}", finishLoad.Result);
if (!finishLoad.IsSuccess)
{
writeCardIsSuccess = false;
}
var close = crd.CRDPBOCClose();
TradeLogger.DebugFormat("PBOCClose结果:{0}", close.Result);
if (!close.IsSuccess)
{
writeCardIsSuccess = false;
}
var powerOff = crd.CRDICPowerOff();
TradeLogger.DebugFormat("PowerOff结果:{0}", powerOff.Result);
if (!powerOff.IsSuccess)
{
writeCardIsSuccess = false;
}

IC卡写卡操作流程的更多相关文章

  1. 门禁 IC卡 ID 卡 RFID 手环 NFC 银行卡 手机模拟门禁

    门禁 IC卡 ID 卡 RFID 手环 NFC 银行卡 手机模拟门禁 原因 最近给公司换了一个门禁. 旧的门禁按键面板已经破了. 不支持我的手环. 按了密码后竟然要按 #. 相关信息 查了资料记录一下 ...

  2. Android NFC近场通信02----读写卡的准备工作

                        Android NFC近场通信02----读写卡的准备工作      因为公司接了一个听上去感觉比較NB的项目.给某油田做派工系统 .并由小女子负责Androi ...

  3. (集成电路卡)ID卡

    IC卡(intergrated Circuit Card,集成电路卡),又称为智能卡,智慧卡,微电路卡,微芯片卡 等等. 它是将一个微电子芯片嵌入符合ISO 7816标准的卡基中,做成卡片形状. IC ...

  4. cpu卡,sam卡原理

    第一部分 CPU基础知识一.为什么用CPU卡IC卡从接口方式上分,可以分为接触式IC卡.非接触式IC卡及复合卡.从器件技术上分,可分为非加密存储卡.加密存储卡及CPU卡.非加密卡没有安全性,可以任意改 ...

  5. 初识CPU卡、SAM卡/CPU卡简介、SAM卡简介 【转】

    初识CPU卡.SAM卡/CPU卡简介.SAM卡简介 IC卡按照接口方式可分为接触式卡.非接触式卡.复合卡:按器件技术可分为非加密存储卡.加密存储卡和CPU卡. 加密存储卡是对持卡人的认证,只有输入正确 ...

  6. 联盛德 HLK-W806 (十三): 运行FatFs读写FAT和exFat格式的SD卡/TF卡

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  7. Keil MDK STM32系列(九) 基于HAL和FatFs的FAT格式SD卡TF卡读写

    Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...

  8. 迅雷9、迅雷极速版之迅雷P2P加速:流量吸血鬼?为什么你装了迅雷之后电脑会感觉很卡很卡?

    原文地址:http://www.whosmall.com/post/90 关闭极速版迅雷ThunderPlatform.exe进程 ThunderPlatform.exe目的:利用P2P技术进行用户间 ...

  9. 信用评分卡(A卡/B卡/C卡)的模型简介及开发流程|干货

    https://blog.csdn.net/varyall/article/details/81173326 如今在银行.消费金融公司等各种贷款业务机构,普遍使用信用评分,对客户实行打分制,以期对客户 ...

随机推荐

  1. virt viewer Usbredir USB重定向

    编译virt viewer之前执行的configure命令,是没有使能usb-redir相关的功能,virt viewer是否支持usbredir是完全依赖于spice-gtk的. virt view ...

  2. Visual Studio 2013智能提示失效解决办法

    各种解决VS2013智能提示失效办法: 1.重置所有设置    工具->导入导出设置->重置所有设置 2.智能提示开关: 工具->选项->文本编辑器->C#->常规 ...

  3. iOS学习之自动布局

    Autolayout: 最重要的两个概念: 约束:对控件位置和大小的限定条件 参照:对控件设置的约束是相对于哪一个视图而言的 自动布局的核心计算公式: obj1.property1 =(obj2.pr ...

  4. javascript中字符串的trim功能表达式

    string.replace(/(^\s*)|(\s*$)/g, "") 用来删除行首行尾的空白字符(包括空格.制表符.换页符等等)

  5. Contest 7.21(贪心专练)

    这一次都主要是贪心练习 练习地址http://acm.hust.edu.cn/vjudge/contest/view.action?cid=26733#overview Problem APOJ 13 ...

  6. wikioi 1214 线段覆盖

    题目描述 Description 给定x轴上的N(0<N<100)条线段,每个线段由它的二个端点a_I和b_I确定,I=1,2,--N.这些坐标都是区间(-999,999)的整数.有些线段 ...

  7. C#中反射的使用(How to use reflect in CSharp)(2)

    在上一篇里,我们叨逼了好多如何获取到程序集里的对象,但是对象有了,还不知道怎么调,OK,下面开始干这个对象: 首先,我们对上一篇的对象做了一些修改,以适应多种情况: using System; usi ...

  8. 添加MIME类型

    #查看站点test01下所有的MIME类型: Get-WebConfiguration -PSPath MACHINE/WEBROOT/APPHOST/test01 -Filter system.we ...

  9. WCF 新手教程二

    基本知识: [ServiceContract] Attribute 能够有以下Property 的: CallbackContract 设置callback的类型:Duplicate指Service ...

  10. delphi 13 打印相关

    打印 页面设置 打印预览 文档属性     //---------------------------------------------------------------------------- ...