PBOC代码回顾(1)

2020-05-05 13:54

// GlobalInfo.h: interface for the CGlobalInfo class. //

//////////////////////////////////////////////////////////////////////

#if !defined(AFX_GLOBALINFO_H__22678551_34B5_453E_BD7F_6BDD5BE581BB__INCLUDED_)

#define AFX_GLOBALINFO_H__22678551_34B5_453E_BD7F_6BDD5BE581BB__INCLUDED_

#if _MSC_VER > 1000 #pragma once

#endif // _MSC_VER > 1000

#ifdef __cplusplus extern \#endif

#pragma pack (push, 1)

#define TAG_IIN 0x42 //行业识别码(IIN) #define TAG_CARD_AID 0x4F //应用标识符(AID)-卡片 #define TAG_APPLICATION_LABEL 0x50 //应用标签 #define TAG_TRACK2_DATA 0x57 //磁条2 等效数据 #define TAG_PAN 0x5A //应用PAN #define TAG_CARDHOLDER_NAME 0x5F20 //持卡人姓名 #define TAG_APPLICATION_EXPIRATION_DATE 0x5F24 //应用失效日期 #define TAG_APPLICATION_EFFECTIVE_DATE 0x5F25 //应用生效日期 '70' or '77' #define TAG_ISSUER_COUNTRY_CODE 0x5F28 //发卡行国家代码 '70' or '77' #define TAG_TRANSACTION_CURRENCY_CODE 0x5F2A //交易货币代码 #define TAG_LANGUAGE_PREFERENCE 0x5F2D //语言选择 'A5' '5F2D' #define TAG_SERVICE_CODE 0x5F30 //服务码 '70' or '77' '5F30' #define TAG_PAN_SEQUENCE_NUMBER 0x5F34 //应用主账号序列号 '70' or '77'

#define TAG_TRANSACTION_CURRENCY_EXPONENT 0x5F36 //交易货币指数 #define TAG_ISSUER_URL 0x5F50 //发卡行URL 'BF0C' or '73' #define TAG_IBAN 0x5F53 //国际银行账号(IBAN) 'BF0C' or '73'

#define TAG_BIC 0x5F54 //银行标识符代码(BIC) 'BF0C' or '73'

#define TAG_ISSUER_COUNTRY_CODE_2 0x5F55 //发卡行国家 代码(alpha2 格式)'BF0C' or '73'

#define TAG_ISSUER_COUNTRY_CODE_3 0x5F56 //发卡行国家 代码(alpha3 格式) 'BF0C' or '73'

#define TAG_ACCOUNT_TYPE 0x5F57 //账户类型 #define TAG_APPLICATION_TEMPLATE 0x61 //应用模板 '70' or '77' #define TAG_FCI_TEMPLATE 0x6F //文件控制信息(FCI)模板 #define TAG_SYS_DIRECTORY_RECORD 0x70 //Payment System Directory Record

#define TAG_ISSUER_SCRIPT_TEMPLATE_1 0x71 //发卡行脚本1

#define TAG_ISSUER_SCRIPT_TEMPLATE_2 0x72 //发卡行脚本2 #define TAG_DIRECTORY_TEMPALTE 0x73 //目录自定义模板 #define TAG_RESPONSE_TEMPLATE_2 0x77 //命令响应数据为格式2 #define TAG_RESPONSE_TEMPLATE_1 0x80 //命令响应数据为格式1 #define TAG_AIP 0x82 //应用交互特征 #define TAG_COMMAND_TEMPLATE 0x83 //命令模版 #define TAG_DF_NAME 0x84 //专用文件(DF)名称 #define TAG_ISSUER_SCRIPT_COMMAND 0x86 //发卡行脚本命令 #define TAG_APPLICATION_PRIORITY_INDICATOR 0x87 //应用优先指示器 #define TAG_SFI 0x88 //短文件标识符 #define TAG_AUTHORISATION_CODE 0x89 //Authorisation Code #define TAG_AUTHORISATION_RESPONSE_CODE 0x8A //授权响应代码 #define TAG_CDOL1 0x8C //卡片风险管理数据对象列表1(CDOL1)

#define TAG_CDOL2 0x8D //卡片风险管理数据对象列表2(CDOL2)

#define TAG_CVM_LIST 0x8E //持卡人验证方法(CVM)列表 #define TAG_ICC_CA_PUBLIC_KEY_INDEX 0x8F //CA公钥索引 #define TAG_ISSUER_PUBLIC_KEY_CERTIFICATE 0x90 //发卡行公钥证书 #define TAG_ISSUER_AUTHENTICATION_DATA 0x91 //发卡行认证数据 #define TAG_ISSUER_PUBLIC_KEY_REMAINDER 0x92 //发卡行公钥余数 #define TAG_SIGNED_STATIC_APP_DATA 0x93 //签名的静态应用数据 #define TAG_AFL 0x94 //应用文件定位器(AFL) #define TAG_TVR 0x95 //终端验证结果 #define TAG_TDOL 0x97 //交易证书数据对列表(TDOL) #define TAG_TC_HASH_VALUE 0x98 //交易证书(TC)哈希值 #define TAG_TRANSACTION_PIN_DATA 0x99 //交易PIN 数据 #define TAG_TRANSACTION_DATE 0x9A //交易日期 #define TAG_TSI 0x9B //交易状态信息 #define TAG_TRANSACTION_TYPE 0x9C //交易类型 #define TAG_DDF_NAME 0x9D //目录数据文件(DDF)名称 #define TAG_ACQUIRER_ID 0x9F01 //收单行标识 #define TAG_AMOUNT_AUTHORISED_NUMERIC 0x9F02 //授权金额(数值型) #define TAG_AMOUNT_OTHER_NUMERIC 0x9F03 //其它金额(数值型) #define TAG_APPLICATION_DISCRETIONARY_DATA 0x9F05 //应用自定义数据 #define TAG_TERMINAL_AID 0x9F06 //终端应用标识(AID) #define TAG_APPLICATION_USAGE_CONTROL 0x9F07 //应用用途控制 #define TAG_ICC_APPLICATION_VERSION 0x9F08 //应用版本号(支付系统给应用分配的版本号)

#define TAG_TERMINAL_APPLICATION_VERSION 0x9F09 //终端应用版本号 #define TAG_CARDHOLDER_NAME_EXTENDED 0x9F0B //持卡人姓名扩展 #define TAG_DEFAULT_IAC 0x9F0D //发卡行行为代码(IAC)-缺省 #define TAG_DENIAL_IAC 0x9F0E //发卡行行为代码(IAC)-拒绝 #define TAG_ONLINE_IAC 0x9F0F //发卡行行为代码(IAC)-联机 #define TAG_ISSUER_APPLICATION_DATA 0x9F10 //发卡行应用数据 #define TAG_ISSUER_CODE_TABLE_INDEX 0x9F11 //发卡行代码表索引 #define TAG_APPLICATION_PREFERRED_NAME 0x9F12 //应用优先名称

#define TAG_LAST_ONLINE_ATC 0x9F13 //上次联机应用交易计数器(ATC)寄存器

#define TAG_LCOL 0x9F14 //连续脱机交易下限 #define TAG_MERCHANT_CATEGORY_CODE 0x9F15 //商户分类码 #define TAG_MERCHANT_ID 0x9F16 //商户标识 #define TAG_PIN_TRY_COUNTER 0x9F17 //PIN 尝试计数器 #define TAG_ISSUER_SCRIPT_ID 0x9F18 //脚本标识

#define TAG_TERMINAL_COUNTRY_CODE 0x9F1A //终端国家代码 #define TAG_TERMINAL_FLOOR_LIMIT 0x9F1B //终端最低限额 #define TAG_TERMINAL_ID 0x9F1C //终端标识 #define TAG_IFD_SEQUENCE_NUMBER 0x9F1E //接口设备(IFD)序列号 #define TAG_TRACK1_DISCRETIONARY_DATA 0x9F1F //磁条1自定义数据 #define TAG_TRANSACTION_TIME 0x9F21 //交易时间

#define TAG_TERMINAL_CA_PUBLIC_KEY_INDEX 0x9F22 //认证中心公钥索引 #define TAG_UCOL 0x9F23 //连续脱机交易次数上限 #define TAG_APPLICATION_CRYPTOGRAM 0x9F26 //应用密文(AC) #define TAG_CID 0x9F27 //密文信息数据(CID) #define TAG_ISSUER_PUBLIC_KEY_EXPONENT 0x9F32 //发卡行公钥模数 #define TAG_TERMINAL_CAPABILITIES 0x9F33 //终端性能 #define TAG_CVM_RESULTS 0x9F34 //持卡人验证方法(CVM)结果

#define TAG_TERMINAL_TYPE 0x9F35 //终端类型 Terminal Type #define TAG_ATC 0x9F36 //应用交易计数器(ATC) #define TAG_UNPREDICTABLE_NUMBER 0x9F37 //不可预知数 #define TAG_PDOL 0x9F38 //处理选项数据对象列表(PDOL) #define TAG_POS_ENTRY_MODE 0x9F39 //销售点(POS)输入方式 #define TAG_AMOUNT_REFERENCE_CURRENCY 0x9F3A //参考货币金额

#define TAG_TRANS_REFERENCE_CURRENCY_CODE 0x9F3C //交易参考货币代码 #define TAG_TRANS_REFERENCE_CURRENCY_EXPONENT 0x9F3D //交易参考货币指数 #define TAG_ADDITIONAL_TERMINAL_CAPABILITIES 0x9F40 //附加终端性能 #define TAG_TRANSACTION_SEQUENCE_COUNTER 0x9F41 //交易序列计数器 #define TAG_APP_CURRENCY_CODE 0x9F42 //应用货币代码 #define TAG_APP_CURRENCY_EXPONENT 0x9F44 //应用货币指数 #define TAG_DATA_AUTHENTICATION_CODE 0x9F45 //数据认证码 #define TAG_ICC_PUBLIC_KEY_CERTIFICATE 0x9F46 //ICC公钥证书 #define TAG_ICC_PUBLIC_KEY_EXPONENT 0x9F47 //ICC公钥指数 #define TAG_ICC_PUBLIC_KEY_REMAINDER 0x9F48 //ICC公钥余项 #define TAG_DDOL 0x9F49 //DDOL #define TAG_SDA_LIST 0x9F4A //SDA标签列表 #define TAG_SIGNED_DYNAMIC_APP_DATA 0x9F4B //签名的动态应用数据 #define TAG_ICC_DYNAMIC_NUMBER 0x9F4C //IC动态数 #define TAG_LOG_ENTRY 0x9F4D //记录入口 #define TAG_MERCHANT_NAME_AND_LOCATION 0x9F4E //商户名称 #define TAG_LOG_FORMAT 0x9F4F //日志格式 #define TAG_EC_ResetThreshold 0x9F6D //电子现金重置阈值 #define TAG_EC_IssuerAC 0x9F74 //电子现金发卡行授权码

#define TAG_EC_BalanceLimit 0x9F77 //电子现金余额上限 #define TAG_EC_Single_TransLimit 0x9F78 //电子现金单笔交易限额 #define TAG_EC_Balance 0x9F79 //电子现金余额 #define TAG_EC_TSI 0x9F7A //电子现金终端支持指示器 #define TAG_EC_TerminalTransLimit 0x9F7B //电子现金终端交易限额 #define TAG_FCI_PROPRIETARY_TEMPLATE 0xA5 //FCI专用模板 #define TAG_FCI_ISSUER_DATA 0xBF0C //FCI发卡行自定义数据 #define TAG_ISSUERSCRIPTRESULT 0xDF31 //发卡行脚本结果

/* 函数返回值 */

#define ICC_HARDWARE_OK 0 #define ICC_SUCCESS 0 #define ICC_WARNING (ICC_SUCCESS + 1)

#define ICC_ERR_XMLNODE (ICC_SUCCESS - 1) #define ICC_ERR_TLVLENGTH (ICC_SUCCESS - 2) #define ICC_ERR_NOENTITY (ICC_SUCCESS - 3) #define ICC_ERR_TLVDATA (ICC_SUCCESS - 6) #define ICC_ERR_HARDWARE (ICC_SUCCESS - 7) #define ICC_ERR_NOTSUPPORT (ICC_SUCCESS - 8) #define ICC_ERR_FILENOTFOUND (ICC_SUCCESS - 9) #define ICC_ERR_FILEBLOCKED (ICC_SUCCESS -10) #define ICC_ERR_NOSPECIFIED (ICC_SUCCESS -11) #define ICC_ERR_FILEDATA (ICC_SUCCESS -12)

#define ICC_ERR_CANDIDATELISTEMPTY (ICC_SUCCESS -13) #define ICC_ERR_AIDLISTEMPTY (ICC_SUCCESS -14) #define ICC_ERR_AIDNOMATCH (ICC_SUCCESS -15) #define ICC_ERR_VERIFYFAILED (ICC_SUCCESS -16) #define ICC_ERR_NOINPUTDATA (ICC_SUCCESS -17) #define ICC_ERR_PARAM (ICC_SUCCESS -18) #define ICC_ERR_CMDFAILED (ICC_SUCCESS -19) #define ICC_ERR_SMALLMEM (ICC_SUCCESS -20) #define ICC_ERR_CALLBACK (ICC_SUCCESS -21) #define ICC_ERR_GetIssuerPKInfo (ICC_SUCCESS -50) #define ICC_ERR_VerifySignedSAD (ICC_SUCCESS -60) #define ICC_ERR_GetICPKInfo (ICC_SUCCESS -70) #define ICC_ERR_DDA (ICC_SUCCESS -80) #define ICC_ERR_CDA (ICC_SUCCESS -90)

//TLV结构体 struct TLVEntity { BYTE* Tag; //标记 UINT TagSize; //标记占用字节数 BYTE* Length; //数据长度 UINT LengthSize; //数据长度占用字节数 BYTE* Value; //数据 TLVEntity* Sub_TLVEntity; //子嵌套TLV实体 };

//BER-TLV结构体 struct TLVDATA { UINT nTag; //标签 INT nLength; //长度 BYTE pValue[512]; //值 };

struct ICCSystemRelatedData { UINT nTag; BYTE ucType; //0代表必备数据,1代表可选数据 };

/* 定义数据格式 */ enum EICDataFormat { IC_FOMRAT_NOSPECIFIED = 0, //未知*/ IC_FORMAT_A, // a-每个字节包含一个字符的字母数据元(A-Z,a-z) IC_FORMAT_AN, // an-每个字节包含一个字符字母数字型数据元(A-Z,a-z,0-9) IC_FORMAT_ANS, // ans–字母数字及特殊字符型 IC_FORMAT_B, //b-二进制(二进制数或者位组合) IC_FORMAT_CN, // cn-压缩数字,每个字节由‘0’-‘9’中的两个数字组成,数据元左对齐,右补F。如数1234567890123 // 可以以十六进制形式保存在8个字节的PAN数据对象中,形如‘12 34 56 78 90 12 3F FF’ IC_FORMAT_N, // n-数字型,也称作BCD码。右对齐,左补‘0’。如,数字12345可以保存在n12的授权金额数据对 // 象中,形如‘00 01 23 45’。 IC_FORMAT_VAR //var };

/* 定义数据源 */

#define IC_SOURCE_ICC 0x01 /* 卡片数据 */ #define IC_SOURCE_TERMINAL 0x02 /* 终端数据 */ #define IC_SOURCE_ISSUER 0x04 /* 发卡行数据 */

struct AIDITEM { BYTE ucAID[16]; //应用唯一标识 BYTE ucAIDLen; //应用标识的长度 //终端为每个支持的应用设立一个应用选择指示器(ASI)变量,用来表示该应用是全部名称匹配还是部分名称匹配。 BYTE ucASI; //应用选择指示器(ASI),0为部分名称匹配,1为全


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

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

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

马上注册会员

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