PBOC代码回顾(1)(2)

2020-05-05 13:54

部名称匹配 BYTE ucVersionNo[2]; };

struct APPITEM { //如果在最终选择期间给持卡人提供列表,则应用标签和应用优先名称必须保存。 //DF名和应用优先权标识符在任何情况下都可能需要。 BYTE ucAID[ 16]; //应用唯一标识 BYTE ucAIDLen; //应用标识的长度 BYTE ucVersionNo[2]; //应用版本号 BYTE ucPriority; //应用优先权指示符 BYTE szLabel[ 16]; //应用标签。 存在于ADF 的 FCI 中(可选)和 ADF目录入口中(必备) //注:对于多应用卡片,强烈建议在响应报文中包含“应用标签”数据元, //使得在终端用“AID列表”方法进行应用选择时,能方便持卡人选择/确认应用。 BYTE szPreferredName[16]; //应用优先名称 BYTE szLanguagePreference[8]; // BYTE bIssuerCodeTableIndex; //发卡行代码表索引 BYTE abIssuerData[222]; USHORT usIssuerDataLen; } ;

struct CAPKITEM { BYTE ucRID[5]; BYTE ucRIDLen; BYTE ucIndex; //公钥索引 BYTE ucExponent[3]; //公钥的指数 BYTE ucExponentLen; //公钥的指数长 BYTE ucModulus[248]; //公钥的模 USHORT ucModulusLen; //公钥的模长 USHORT ucModulusBitLen; //公钥的模位长 };

struct TERMINALPARAM { //部分数据需要终端支持下载功能从收单行下载 BYTE ucTerminalID[8]; //9F1C,终端标识 BYTE ucTerminalType; //9F35,终端类型 BYTE ucTerminalCaps[3]; //9F33,终端性能 BYTE ucAdditionalTerminalCaps[5]; //9F40,附加终端性能 BYTE DefaultTAC[5]; //终端行为代码-缺省 BYTE DenialTAC[5]; //终端行为代码-拒绝 BYTE OnlineTAC[5]; //终端行为代码-联机 BYTE ucTerminalCountryCode[2]; //9F1A,终端国家代码 BYTE ucPOSEntryMode; //9F39,销售点(POS)输入方式 BYTE ucTransCurrencyCode[2]; //5F2A,交易货币代码

BYTE ucTransCurrencyExponent; //5F36,交易货币指数 BYTE ucTranRefCurrCode[2]; //9F3C,交易参考货币代码 BYTE ucTranRefCurrExp; //9F3D,交易参考货币指数 ULONG ulBRSThresholdValue; //偏置随机选择(BRS)的阈值 BYTE ucRsTargetPercent; // 随机选择(RS)的目标百分数 BYTE ucBRSMaxTargetPercent; // 偏置随机选择(BRS)的最大目标百分数 __int64 nTerminalFloorLimit; //终端最低限额 TLVDATA DefaultTDOL; //缺省交易证书数据对象列表(TDOL) TLVDATA DefaultDDOL; //缺省动态数据认证数据对象列表(DDOL) BYTE ucIFDSerialNumber[8]; //9F1E,接口设备(IFD)序列号 BYTE ucMerchantCategoryCode[2]; //9F15,商户分类码 BYTE ucMerchantIdentifier[15]; //9F16,商户标识 BYTE ucAcquirerIdentifier[6]; //9F01,收单行标识 BYTE ucRiskCheckItem; //终端支持的终端风险管理执行功能,对应位置1 BYTE ucRestrictionsCheckItem; //终端支持的处理限制功能,对应位置1 CAPKITEM CAPKItem; BYTE ucIssuerPK[248]; USHORT usIssuerPKLen; BYTE ucICPK[248]; USHORT usICPKLen; } ;

struct ICTransLog { BYTE ucTransDate[3]; //交易日期(YYMMDD) BYTE ucTransTime[3]; //交易时间(hhmmss) BYTE ucTransAmount[6]; //授权金额 BYTE ucTransOther[6]; //其它金额 BYTE ucTerminalCountryCode[2]; //终端国家代码 BYTE ucTransCurrencyCode[2]; //交易货币代码 BYTE ucMerchantName[20]; //商户名称 BYTE ucTransType[1]; //交易类型 BYTE ucATC[2]; //应用交易计数器 };

//R-APDU中期望返回的数据字节数用Le(期望数据长度)表示。 #define Le_FF 0xFF // 不期望返回数据 #define Le_00 0x00 //当Le存在且值为0时,表示需要最大字节数(256字节)。 //在命令报文需要时,Le可始终被设为’00’。

#define PSE_NAME \.SYS.DDF01\#define PSE_LEN 14

#define AIDEXACTMATCH 2 //完全匹配 #define AIDPARTMATCH 1 //部分匹配 #define AIDNOMATCH 0 //不匹配

//下面为数据对象列表类型

#define DOLTYPE_PDOL 1 //PDOL #define DOLTYPE_TDOL 2 //TDOL #define DOLTYPE_CDOL 3 //CDOL #define DOLTYPE_DDOL 4 //DDOL

#define BITGET(n,p) ((p)[(n-1)/8]&(0x80>>((n-1)%8))) //取bit位 #define BITSET(n,p) ((p)[(n-1)/8]|=(0x80>>((n-1)%8))) //设bit位 #define BITCLR(n,p) ((p)[(n-1)/8]&=(~(0x80>>((n-1)%8)))) //清bit位 /* 规范6

A.7 终端验证结果

表 A.5 终端验证结果(TVR) */

//字节1

#define TVR_ODA 1 //未进行脱机数据认证 #define TVR_OSDA 2 // 脱机静态数据认证失败 #define TVR_ICCDM 3 // IC 卡数据缺失 #define TVR_CEF 4 // 卡片出现在终端异常文件中 #define TVR_ODDA 5 // 脱机动态数据认证失败 #define TVR_CDA 6 // 复合动态数据认证/应用密文生成失败 //字节2

#define TVR_APP_VER_DIFF 9 //应用版本号不一致 #define TVR_APP_EXPIRED 10 //应用已经失效 #define TVR_APP_NOT_EFFECT 11 //应用尚未生效 #define TVR_RSNA 12 //卡片产品不支持请求的服务 #define TVR_NEWCARD 13 //新卡 //字节3

#define TVR_CVF 17 // 持卡人验证失败 #define TVR_UCVM 18 // 未知的CVM #define TVR_TLE 19 // PIN 重试次数超限 #define TVR_NPW 20 // 要求输入PIN,但密码键盘不存在或工作不正常

#define TVR_PNE 21 // 要求输入PIN,密码键盘存在,但未输入PIN #define TVR_OPINE 22 // 输入联机PIN //字节4

#define TVR_TEFL 25 // 交易超过最低限额 #define TVR_LCOLE 26 // 超过连续脱机交易下限 #define TVR_UCOLE 27 // 超过连续脱机交易上限 #define TVR_TSRFOP 28 // 交易被随机选择联机处理 #define TVR_MFO 29 // 商户要求联机交易 //字节5:

#define TVR_DTDOLU 33 // 使用缺省TDOL #define TVR_IA 34 // 发卡行认证失败 #define TVR_SPFB 35 // 最后一次GENERATE AC 命令之前脚本处理失败

#define TVR_SPFA 36 // 最后一次GENERATE AC 命令之后脚本处理失败

#define TSI_ODA_PERFORMED 1 // 脱机数据认证已执行

#define TSI_CARDHOLDERVERIFY_PERFORMED 2 // 持卡人验证已执行

#define TSI_CARDRISKMAMAGEMENT_PERFORMED 3 // 卡片风险管理已执行

#define TSI_ISSUERAUTHENTICATE_PERFORMED 4 // 发卡行认证已执行

#define TSI_TERMINALRISKMAMAGEMENT_PERFORMED 5 // 终端风险管理已执行

#define TSI_ISSUERSCRIPTPORCESS_PERFORMED 6 // 脚本处理已执行

#define AUC_DOMESTICCASH 1 // 国内现金交易有效 #define AUC_INTERNATIONALCASH 2 // 国际现金交易有效 #define AUC_DOMESTICGOODS 3 // 国内商品有效 #define AUC_INTERNATIONALGOODS 4 // 国际商品有效 #define AUC_DOMESTICSERVICES 5 // 国内服务有效 #define AUC_INTERNATIONALSERVICES 6 // 国际服务有效 #define AUC_ATM 7 // ATM 有效 #define AUC_POS 8 // 在非ATM 终端上有效 #define AUC_DOMESTICCASHBACK 9 // 允许国内返现 #define AUC_INTERNATIONALCASHBACK 10 // 允许国际返现 /*

交易类型

按GB/T 15150定义的处理码前2位表示的金融交易类型 00-19 借记 00 商品和服务 01 提款/现金付款 02 调整 03 担保支票 04 核实支票 05 欧洲支票 06 旅行支票 07 信用证

08 直接转账(邮政银行) 09 伴有现金支付的商品和服务

20-29 贷记 20 还款 21 存款 22 调整

23 支票存款担保 24 支票存款 30-39 查询服务 30 查询可用资金 31 查询余额 40-49 转账服务 40 持卡人账户转账

剩余都是保留给ISO,国家和民间使用的 */

//ATM上的交易类型 // \取款 // \代缴费 // \存款 // \余额查询 // \代缴费查询 // \明细查询 // \转账 // \汇款 // \兑付入账

// \修改小额支付账户余额上限 // \圈存 // \圈提 // \现金充值 // \修改密码

//应用用途控制

//JR/T 0025限制:字节1中,位4,6值相同;位3,5值相同 #define TRANSTYPE_GOODSANDSERVICES 0x00 //商品和服务 #define TRANSTYPE_CASH 0x01 //提款/现金付款 #define TRANSTYPE_CASHBACK 0x09 //返现

//A.3 附加终端性能 //字节1:交易类型性能

#define ADDTERMCAPS_CASH 0x80 //现金 #define ADDTERMCAPS_CASHBACK 0x10 //返现

#define CVM_TC_P 0x80 // IC卡明文PIN验证 #define CVM_TC_EO 0x40 // 加密PIN联线验证 #define CVM_TC_S 0x20 // 签名 #define CVM_TC_E 0x10 // 加密PIN离线验证 #define CVM_TC_NO 0x08 // 无需CVM


PBOC代码回顾(1)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《圆明园的毁灭》图片

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: