Professional Documents
Culture Documents
中国建设银行
目录
0. 术语及定义............................................................................................................................... 3
服务(Service) ............................................................................................................... 3
Android 接口定义语言(AIDL) ................................................................................... 3
应用程序无响应(ANR) .............................................................................................. 3
Action ................................................................................................................................ 3
厂商服务应用(Service Application) ........................................................................... 4
智能终端应用软件(Application) ................................................................................ 4
1. 总体设计................................................................................................................................... 4
2. 服务层接口说明....................................................................................................................... 6
2.1 接口说明................................................................................................................... 6
2.2 配置说明................................................................................................................... 6
2.3 加解密说明............................................................................................................... 6
3. 设备接口................................................................................................................................... 7
3.1 设备服务................................................................................................................... 7
3.1.1. 功能描述 ........................................................................................................... 7
3.1.2. 接口列表 ........................................................................................................... 7
3.1.3. 接口说明 ........................................................................................................... 8
3.2 磁条读卡器............................................................................................................. 13
3.2.1. 功能描述 ......................................................................................................... 14
3.2.2. 接口列表 ......................................................................................................... 14
3.2.3. 接口说明 ......................................................................................................... 14
3.3 接触式 IC 读卡器 ................................................................................................... 15
3.3.1. 功能描述 ......................................................................................................... 15
3.3.2. 接口列表 ......................................................................................................... 15
3.3.3. 接口说明 ......................................................................................................... 16
3.4 非接触 IC 读卡器 ................................................................................................... 17
3.4.1. 功能描述 ......................................................................................................... 17
3.4.2. 接口列表 ......................................................................................................... 18
3.4.3. 接口说明 ......................................................................................................... 18
3.5 蜂鸣器..................................................................................................................... 23
3.5.1. 功能描述 ......................................................................................................... 23
3.5.2. 接口列表 ......................................................................................................... 23
3.5.3. 接口说明 ......................................................................................................... 23
3.6 LED 灯 .................................................................................................................... 24
3.6.1. 功能描述 ......................................................................................................... 24
3.6.2. 接口列表 ......................................................................................................... 24
3.6.3. 接口说明 ......................................................................................................... 24
3.7 扫码器..................................................................................................................... 25
3.7.1. 功能描述 ......................................................................................................... 25
3.7.2. 接口列表 ......................................................................................................... 25
3.7.3. 接口说明 ......................................................................................................... 25
1
中国建设银行智能 POS 终端接口规范
3.8 打印机..................................................................................................................... 27
3.8.1. 功能描述 ......................................................................................................... 27
3.8.2. 接口列表 ......................................................................................................... 27
3.8.3. 接口说明 ......................................................................................................... 28
3.9 串口......................................................................................................................... 33
3.9.1. 功能描述 ......................................................................................................... 33
3.9.2. 接口列表 ......................................................................................................... 33
3.9.3. 接口说明 ......................................................................................................... 33
3.10 密码键盘(Pinpad).............................................................................................. 36
3.10.1. 功能描述 ......................................................................................................... 36
3.10.2. 接口列表 ......................................................................................................... 36
3.10.3. 接口说明 ......................................................................................................... 37
3.11 PBOC 流程 ............................................................................................................. 44
3.11.1. 功能描述 ......................................................................................................... 44
3.11.2. 接口列表 ......................................................................................................... 44
3.11.3. 接口说明 ......................................................................................................... 45
3.12 设备信息................................................................................................................. 60
3.12.1. 功能描述 ......................................................................................................... 61
3.12.2. 接口列表 ......................................................................................................... 61
3.12.3. 接口说明 ......................................................................................................... 61
3.13 参数文件................................................................................................................. 66
3.13.1. 功能描述 ......................................................................................................... 67
3.13.2. 接口列表 ......................................................................................................... 67
3.13.3. 接口说明 ......................................................................................................... 67
3.14 钱箱......................................................................................................................... 69
3.14.1. 功能描述 ......................................................................................................... 69
3.14.2. 接口列表 ......................................................................................................... 69
3.14.3. 接口说明 ......................................................................................................... 69
3.15 签名板..................................................................................................................... 70
3.15.1. 功能描述 ......................................................................................................... 70
3.15.2. 接口列表 ......................................................................................................... 70
3.15.3. 接口说明 ......................................................................................................... 71
3.16 Psam 卡读卡器 ....................................................................................................... 75
3.16.1. 功能描述 ......................................................................................................... 75
3.16.2. 接口列表 ......................................................................................................... 75
3.16.3. 接口说明 ......................................................................................................... 75
3.17 二代证读卡器 ......................................................................................................... 77
3.17.1. 功能描述 ......................................................................................................... 77
3.17.2. 接口列表 ......................................................................................................... 77
3.17.3. 接口说明 ......................................................................................................... 78
3.18 底座......................................................................................................................... 79
3.18.1. 功能描述 ......................................................................................................... 80
3.18.2. 接口列表 ......................................................................................................... 80
3.18.3. 接口说明 ......................................................................................................... 80
2
中国建设银行智能 POS 终端接口规范
4. 附录......................................................................................................................................... 81
4.1 PBOC 流程调用时序图 ......................................................................................... 81
4.2 密钥索引说明 ......................................................................................................... 81
0. 术语及定义
服务(Service)
Android 接口定义语言(AIDL)
应用程序无响应(ANR)
在 Android 上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个
对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。
一个流畅的合理的应用程序中不能出现 ANR。默认情况下,在 android 中 Activity 的最长
执行时间是 5 秒,BroadcastReceiver 的最长执行时间则是 10 秒。
Action
3
中国建设银行智能 POS 终端接口规范
厂商服务应用(Service Application)
智能终端应用软件(Application)
1. 总体设计
为了方便 APP 应用层屏蔽各终端厂商智能 POS 的硬件差异,达到应用调用接口层的统
一,因此从业务角度出发抽象出终端各设备模块的使用接口。不同终端厂商的设备都按照此
接口实现,达到避免重复开发 APP 应用的目的。
基于此实现的方案如下:
4
中国建设银行智能 POS 终端接口规范
App 应用软件:由建行或第三方开发的实现业务处理逻辑,满足建行业务需求的应用软件,
该应用独立存在于智能 POS 中;
5
中国建设银行智能 POS 终端接口规范
2. 服务层接口说明
2.1 接口说明
2.2 配置说明
厂商服务通过包名为”com.ccb.sedeviceservice”,Action 名为“com.ccb.device_service”标
识自己是厂商服务,应用将通过该包名和 Action 启动和绑定服务,关于 Action 部分示例代
码如下:
<service android:name=”com.ccb.sedeviceservice.CCBDeviceService”>
<intent-filter>
<action android:name=”com.ccb.device_service”>
</intent-filter>
</service>
2.3 加解密说明
2.3.1 加密范围:
对 于 pboc 流 程 , OnPBOCHandler 的 onConfirmCardInfo , onRequestOnlineProcess ,
onTransactionResult 方法中,对于 PAN , TRACK2 , CARD_SN , CARD_HOLDER_NAME ,
ARQC_TLV,REVERSAL_TLV,RESULT_TLV 等字段,进行了加密操作。对于 getAppTLVList,
getPBOCData,getCardData 等方法的返回内容也进行了加密。
2.3.2 解密流程:
a.将相关字段转换成 byte[]。
String srcStr=0a233444 ->byte[] srcBy= {0x0a,0x23,0x34,0x44}
c.还原内容
String deStr=new String(deByte,”GBK”)
6
中国建设银行智能 POS 终端接口规范
3. 设备接口
3.1 设备服务
包名定义:com.ccb.sedeviceservice.aidl.IDeviceService
3.1.1. 功能描述
3.1.2. 接口列表
函数原型 功能说明
boolean lock(in Bundle data, IBinder session); 锁定设备资源
7
中国建设银行智能 POS 终端接口规范
3.1.3. 接口说明
3.1.3.1. 锁定设备资源
3.1.3.2. 释放设备资源
3.1.3.3. 获取设备服务版本
8
中国建设银行智能 POS 终端接口规范
返回值 获取设备服务版本
补充说明 版本格式:版本号-版本生成日期,如:V1.0.0-20161201
3.1.3.4. 蜂鸣器
3.1.3.5. LED 灯
3.1.3.6. 串口
3.1.3.7. 扫码器
9
中国建设银行智能 POS 终端接口规范
功能说明 获取(前后置)扫码器设备操作对象
cameraId :扫码头 ID
FRONT- 前置扫码
入参
参数说明 BACK – 后置扫码
DCS20 – DCS20 串口模式扫码盒子
出参 无
返回值 扫码器设备操作对象,详见 IScanner.aidl 定义
1. 需校验 smartpos.deviceservice.permission. Scanner 权限
补充说明 2.参见 com.ccb.deviceservice.aidl.scanner.Constant 下的常量定义:
Constant.CameraID:摄像头 ID 定义;
3.1.3.8. 磁卡读卡器
10
中国建设银行智能 POS 终端接口规范
3.1.3.11. 密码键盘(Pinpad)
3.1.3.12. 打印机
3.1.3.13. PBOC
3.1.3.14. 终端设备
11
中国建设银行智能 POS 终端接口规范
功能说明 获取终端设备对象
入参 无
参数说明
出参 无
返回值 终端设备信息管理对象,详见 IDeviceInfo.aidl 定义
补充说明 需校验 smartpos.deviceservice.permission. DeviceInfo 权限
3.1.3.15. 参数文件
3.1.3.16. 钱箱
3.1.3.17. 签名板
出参 无
返回值 签名板操作对象,参见 ISignPanel.aidl 类
12
中国建设银行智能 POS 终端接口规范
3.1.3.19. 获取二代证操作对象
3.1.3.20. 获取底座操作对象
3.2 磁条读卡器
包名定义:com.ccb.deviceservice.aidl.magreader.IMagCardReader
13
中国建设银行智能 POS 终端接口规范
3.2.1. 功能描述
该设备用于采集磁条卡数据信息。
3.2.2. 接口列表
函数原型 功能说明
void searchCard(int timeout, MagCardListener listener); 等待刷卡
3.2.3. 接口说明
3.2.3.1. 等待刷卡
磁卡刷卡监听器说明:
interface OnSearchListener{
/**
* 刷卡成功回调
* @param track - 磁卡数据对象
* <ul>
* <li>PAN(String) - 主账号(卡号)</li>
* <li>TRACK1(String) - 磁道1数据</li>
* <li>TRACK2(String) - 磁道2数据</li>
* <li>TRACK3(String) - 磁道3数据</li>
* <li>SERVICE_CODE(String) - 服务码</li>
* <li>EXPIRED_DATE(String) - 卡片有效期(yyMM)</li>
* </ul>
*/
void onSuccess(in Bundle track);
/**
14
中国建设银行智能 POS 终端接口规范
* 刷卡失败回调
* @param error - 错误码
* <ul>
* <li>MAG_SWIPE_ERROR(90) - 刷卡失败</li>
* <li>SERVICE_CRASH(99) - 设备服务异常</li>
* <li>REQUEST_EXCEPTION(100) - 请求异常</li>
* </ul>
*/
void onError(int error);
/**
* 刷卡超时回调
*/
void onTimeout();
}
参见 com.ccb.deviceservice.aidl.magreader.Constant 下的常量定义:
Constant.ErrorCode:错误码定义;
3.2.3.2. 取消刷卡
包名定义:com.ccb.deviceservice.aidl.insertreader.IInsertCardReader
3.3.1. 功能描述
与终端接触式 IC 卡槽上卡片数据交互。
3.3.2. 接口列表
函数原型 功能说明
boolean powerUp(int mode, int voltage, PowerUpResult 卡上电
15
中国建设银行智能 POS 终端接口规范
result);
3.3.3. 接口说明
3.3.3.1. 卡上电
voltage – 上电电压
* <ul>
* <li>VOL_3(0x01) -上电电压,3V </li>
* <li>VOL_5(0x02) -上电电压,5V </li>
* <li>VOL_18(0x03) -上电电压,1.8V </li>
* <li>VOL_DEFAULT(VOL_5) -默认上电电压,5V 同{@link
#VOL_5} </li>
* </ul>
出参 result – 上电结果
<ul>
<li>int protocal – 卡片协议类型,0 或 1</li>
<li>byte[] atr – 卡片 ATR</li>
</ul>
16
中国建设银行智能 POS 终端接口规范
3.3.3.2. 卡下电
3.3.3.3. 卡是否在位
包名定义:com.ccb.deviceservice.aidl.rfreader.IRFCardReader
3.4.1. 功能描述
非接式 IC 读卡器支持一些非接卡业务的卡片数据交互功能。
17
中国建设银行智能 POS 终端接口规范
3.4.2. 接口列表
函数原型 功能说明
void waitCard(OnPassListener listener); 寻卡上电
3.4.3. 接口说明
3.4.3.1. 寻卡上电
/**
* 非接寻卡过程监听接口定义
*/
interface OnPassListener {
/**
* 检测到磁条卡
* @param cardType - 卡类型
* <ul>
* <li>S50_CARD(0x00) - S50卡</li>
18
中国建设银行智能 POS 终端接口规范
* <li>S70_CARD(0x01) - S70卡</li>
* <li>PRO_CARD(0x02) - PRO卡</li>
* <li>S50_PRO_CARD(0x03) - 支持S50驱动与PRO驱动的PRO卡</li>
* <li>S70_PRO_CARD(0x04) - 支持S70驱动与PRO驱动的PRO卡</li>
* <li>CPU_CARD(0x05) - CPU卡</li>
* </ul>
*/
void onCardPass(int cardType);
/**
* 寻卡失败回调
* @param error - 错误码
* <ul>
* <li>ERROR_TRANSERR(0xA2) - 通讯错误</li>
* <li>ERROR_PROTERR(0xA3) - 卡片返回数据不符合规范要求</li>
* <li>ERROR_MULTIERR(0xA4) - 感应区内多卡存在</li>
* <li>ERROR_CARDTIMEOUT(0xA7) - 超时无响应</li>
* <li>ERROR_CARDNOACT(0xB3) - Pro卡或者TypeB卡未激活</li>
* <li>ERROR_MCSERVICE_CRASH(0xff01) - 主控服务异常</li>
* <li>ERROR_REQUEST_EXCEPTION(0xff02) - 请求异常</li>
* </ul>
* @param message - 错误描述
*/
void onFail(int error, String message);
}
参见 com.ccb.deviceservice.aidl.rfreader.Constant 下的常量定义:
Constant.CardType:非接卡类型;
Constant.ErrorCode:错误码定义;
3.4.3.2. 停止寻卡
19
中国建设银行智能 POS 终端接口规范
3.4.3.3. 激活卡片
3.4.3.4. 关闭设备
3.4.3.5. 卡是否在位
20
中国建设银行智能 POS 终端接口规范
3.4.3.7. 认证块号
3.4.3.8. 认证扇区
21
中国建设银行智能 POS 终端接口规范
3.4.3.9. 读块数据
3.4.3.10. 写块数据
3.4.3.11. 加值
3.4.3.12. 减值
22
中国建设银行智能 POS 终端接口规范
参数说明 入参 blockNo – 块号
value – 数据
出参 无
返回值 成功返回 0,其他失败。
补充说明 无
3.5 蜂鸣器
包名定义:com.ccb.deviceservice.aidl.beeper.IBeeper
3.5.1. 功能描述
实现 POS 设备持续蜂鸣的功能。
3.5.2. 接口列表
函数原型 功能说明
void startBeep(int msec); 开始蜂鸣
3.5.3. 接口说明
3.5.3.1. 开始蜂鸣
3.5.3.2. 停止蜂鸣
23
中国建设银行智能 POS 终端接口规范
功能说明 停止蜂鸣
参数说明 入参 无
出参 无
返回值 无
补充说明 调用该方法后立即停止蜂鸣。
3.6 LED 灯
包名定义:com.ccb.deviceservice.aidl.led.ILed
3.6.1. 功能描述
3.6.2. 接口列表
函数原型 功能说明
void turnOn(int led); 点亮 LED 灯
3.6.3. 接口说明
3.6.3.1. 点亮 LED 灯
24
中国建设银行智能 POS 终端接口规范
3.6.3.2. 熄灭 LED 灯
3.7 扫码器
包名定义:com.ccb.deviceservice.aidl.scanner.IScanner
3.7.1. 功能描述
实现 POS 设备前/后置扫码功能。
3.7.2. 接口列表
函数原型 功能说明
void startScan(in Bundle bundle, OnScanListener listener); 启动扫码
3.7.3. 接口说明
3.7.3.1. 启动扫码
以下参数仅针对内置摄像头扫码使用:
<li>payType(int) - 扫码支付方式,用于内置摄像头扫码。0:
25
中国建设银行智能 POS 终端接口规范
通用支付,1:龙支付/银联,2:支付宝/微信</li>
<li>title(String) - 扫码界面标题,用于内置摄像头扫码。若存
在该参数,则扫码界面显示该标题,否则根据支付方式显示对
应标题。
/**
* 扫码器扫码结果监听器
*/
interface OnScanListener{
/**
* 扫码成功回调
* @param barcode - 条码/二维码
*<ul>
* <li>payType(int) - 扫码支付方式,0:通用支付,1:龙支付/银联,2:支付宝/
微信</li>
* <li>barcode(String) - 条码 </li>
* </ul>
*/
void onSuccess(Bundle result);
/**
* 扫码出错
* @param error - 错误码
* 摄像头扫码错误码
* <ul>
* <li>ERROR_INIT_FAIL(1) - 初始化解码库失败</li>
* <li>ERROR_ALREADY_INIT(2) - 已经初始化</li>
* <li>ERROR_INIT_ENGINE(3) - 初始化扫码模组失败</li>
* <li>ERROR_AUTH_LICENSE(4) - License认证失败</li>
* <li>ERROR_OPEN_CAMERA(5) - 打开摄像头失败</li>
* </ul>
* DCS20扫码错误码
* <ul>
26
中国建设银行智能 POS 终端接口规范
* <li>ERROR_FAIL(1) – 扫码失败</li>
* <li>SERVICE_CRASH(99) - 设备服务异常</li>
* </ul>
* @param message - 错误描述
*/
void onError(int error, String message);
/**
* 扫码超时回调
*/
void onTimeout();
}
2、错误码
参见 com.ccb.deviceservice.aidl.scanner.Constant 下的常量定义:
Constant.ErrorCode:错误码;
3.7.3.2. 停止扫码
3.8 打印机
包名定义:com.ccb.deviceservice.aidl.printer.IPrinter
3.8.1. 功能描述
热敏打印机提供交易凭条打印功能,支持文本、条码、二维码和单色图片打印功能。
3.8.2. 接口列表
函数原型 功能说明
int getStatus(); 获取打印机状态
27
中国建设银行智能 POS 终端接口规范
3.8.3. 接口说明
3.8.3.1. 获取打印状态
28
中国建设银行智能 POS 终端接口规范
* <li>ERROR_CUTPOSITIONERR(0xE2) - 切纸刀不在原位(自助热敏打印机特
有返回值)</li>
* <li>ERROR_LOWTEMP(0xE3) - 低温保护或AD出错(自助热敏打印机特有返
回值)</li>
* </ul>
补充说明
3.8.3.2. 设置打印灰度
3.8.3.3. 添加一行打印文本
29
中国建设银行智能 POS 终端接口规范
3.8.3.4. 添加条码打印
3.8.3.5. 添加二维码打印
3.8.3.6. 添加图片打印
30
中国建设银行智能 POS 终端接口规范
3.8.3.7. 添加走纸
3.8.3.8. 添加切纸
3.8.3.9. 添加自动切纸
3.8.3.10. 启动打印
31
中国建设银行智能 POS 终端接口规范
出参 无
返回值
补充说明 包名定义:com.ccb.deviceservice.aidl.printer.OnPrintListener
打印结果监听器
interface OnPrintListener{
/**
* 打印成功回调
*/
void onFinish();
/**
* 打印失败回调
* @param error - 错误码
* <ul>
* <li>ERROR_PAPERENDED(0xF0) - 缺纸,不能打印</li>
* <li>ERROR_HARDERR(0xF2) - 硬件错误</li>
* <li>ERROR_OVERHEAT(0xF3) - 打印头过热</li>
* <li>ERROR_BUFOVERFLOW(0xF5) - 缓冲模式下所操作的位置超出范围</li>
* <li>ERROR_LOWVOL(0xE1) - 低压保护</li>
* <li>ERROR_PAPERENDING(0xF4) - 纸张将要用尽,还允许打印(单步进针打
特有返回值)</li>
* <li>ERROR_MOTORERR(0xFB) - 打印机芯故障(过快或者过慢)</li>
* <li>ERROR_PENOFOUND(0xFC) - 自动定位没有找到对齐位置,纸张回到原来
位置</li>
* <li>ERROR_PAPERJAM(0xEE) - 卡纸</li>
* <li>ERROR_NOBM(0xF6) - 没有找到黑标</li>
* <li>ERROR_BUSY(0xF7) - 打印机处于忙状态</li>
* <li>ERROR_BMBLACK(0xF8) - 黑标探测器检测到黑色信号</li>
* <li>ERROR_WORKON(0xE6) - 打印机电源处于打开状态</li>
* <li>ERROR_LIFTHEAD(0xE0) - 打印头抬起(自助热敏打印机特有返回值)</li>
* <li>ERROR_CUTPOSITIONERR(0xE2) - 切纸刀不在原位(自助热敏打印机特
有返回值)</li>
* <li>ERROR_LOWTEMP(0xE3) - 低温保护或AD出错(自助热敏打印机特有返
回值)</li>
* </ul>
*/
void onError(int error);
}
2、错误码定义
参见 com.ccb.deviceservice.aidl.printer.Constant 下的常量定义:
Constant.ErrorCode:错误码;
32
中国建设银行智能 POS 终端接口规范
3.9 串口
包名定义:com.ccb.deviceservice.aidl.serialport.ISerialPort
3.9.1. 功能描述
实现串口数据收发功能。
3.9.2. 接口列表
函数原型 功能说明
boolean open(); 打开串口
3.9.3. 接口说明
3.9.3.1. 打开串口
3.9.3.2. 关闭串口
33
中国建设银行智能 POS 终端接口规范
参数说明 入参 无
出参 无
返回值 成功返回 true,失败返回 false。
补充说明
3.9.3.3. 初始化串口
par – 校验
* <ul>
* <li>PAR_NOPAR('N') - 无效验(缺省)</li>
* <li>PAR_EVEN('E') - 偶效验</li>
* <li>PAR_ODD('O') - 奇效验</li>
* </ul>
dbs – 数据位
* <ul>
* <li>DBS_7(0x07) - 7 位数据位</li>
* <li>DBS_8(0x08) - 8 位数据位(缺省)</li>
* </ul>
出参 无
返回值 初始化成功返回 true,失败返回 false。
补充说明 参见 com.ccb.deviceservice.aidl.serialport.Constant 下的常量定义:
Constant.BPS:波特率;
Constant.PAR:校验;
Constant.DBS:数据位
34
中国建设银行智能 POS 终端接口规范
3.9.3.4. 读串口数据
3.9.3.5. 写串口数据
3.9.3.6. 清空接收缓冲区
3.9.3.7. 检查缓冲区是否为空
35
中国建设银行智能 POS 终端接口规范
出参 无
返回值 缓冲为空返回 true,不为空返回 false。
补充说明
3.10 密码键盘(Pinpad)
包名定义:com.ccb.deviceservice.aidl.pinpad.IPinpad
3.10.1. 功能描述
3.10.2. 接口列表
函数原型 功能说明
boolean isKeyExist(int keyType, int keyId); 判断密钥是否存在
36
中国建设银行智能 POS 终端接口规范
3.10.3. 接口说明
3.10.3.1. 密钥是否存在
3.10.3.2. 下装 TEK 密钥
37
中国建设银行智能 POS 终端接口规范
3.10.3.3. 下装密文主密钥
3.10.3.4. 下装明文主密钥
3.10.3.5. 下装工作密钥
38
中国建设银行智能 POS 终端接口规范
3.10.3.6. 计算 MAC
3.10.3.7. 加密磁道数据
3.10.3.8. 数据加/解密
39
中国建设银行智能 POS 终端接口规范
2.DesMode 说明:
interface DesMode {
int ENC = 0; /** 加密 */
int DEC = 1; /** 解密 */
}
interface OnInputPinListener{
/**
* 按键按压事件
* @param len - 已输入密码长度
* @param key - 当前的Key值
*/
void onInput(intlen, int key);
/**
* 用户确认PIN输入时调用
* @param data - pin码,输入为空时候,为null
* 16 字节的密文 PIN block, 格式为 partial hex-ASCII,见补充说明3。
* @param isNonePin - 输入为空的时候为true
*/
void onConfirm(in byte[] data, boolean isNonePin);
/**
40
中国建设银行智能 POS 终端接口规范
* 取消PIN输入时调用
*/
void onCancel();
/**
* 错误时回调
* @param errorCode - 错误码
*<ul>
*<li>ERROR_ABOLISH(27) - 用户取消</li>
*<li>ERROR_NO_SUCH_PINPAD(32) - 用户指定名称的 pinpad 不存在</li>
*<li>ERROR_INVALID_ARGUMENT(33) - PINPAD 调用失败,无效实参</li>
*<li>ERROR_TIME_OUT(35) - 超时</li>
*<li>ERROR_COMM_ERR(36) - 通讯错误</li>
*<li>ERROR_UNSUPPORTED_FUNC(37) - 当前 PINPAD 版本不支持该功能</li>
*<li>ERROR_NO_SUCH_KEY(39) - 无指定密钥</li>
*<li>ERROR_BAD_STATUS(46) - 模块当前状态错误或者当前状态不支持该调用
</li>
*<li>ERROR_NO_SUCH_KAP(50) - 该操作指定的密钥区不存在</li>
*<li>ERROR_KAP_ALREADY_EXIST(51) - 指定的密钥区已经存在</li>
*<li>ERROR_WRONG_KAP_MODE(64) - 该密钥区不兼容</li>
*<li>EXTEND_ERR_INPUT_TIMEOUT(65281) - PIN 输入超时</li>
*<li>EXTEND_ERR_INPUT_COMM_ERR(65282) - PIN 输入通讯异常</li>
*<li>EXTEND_ERR_INPUT_UNKNOWN(65283) - 未知的PIN输入错误</li>
*</ul>
*/
void onError(int errorCode);
}
3、partial hex-ASCII
hex-ASCII 的一种退化表示。
字节序列 0xab, 0xcd 的 hex-ASCII 形态, 应该是 "abcd"。
因为 '0' 到 '9' 和 'a' 到 'f' 的 ASCII 编码不是连续的,出于实现上的简单(半字节 +
0x30), partial hex-ASCII 将 0xab, 0xcd, 直接表示为 0x3a, 0x3b, 0x3c, 0x3d, 对应的
字串就是 ":;<=",不具备 hex-ASCII 的可读性。但是, 对于 0-9 的数字 (比如 PIN
digits),"partial hex-ASCII" 和 "hex-ASCII" 一致。
3.10.3.10. 取消 PIN 输入
41
中国建设银行智能 POS 终端接口规范
补充说明
3.10.3.11. 设置密钥算法
3.10.3.12. 是否使用国密算法
3.10.3.13. 获取错误描述
42
中国建设银行智能 POS 终端接口规范
<li>ERROR_BAD_STATUS(46) - 模块当前状态错误或者当前状态不支持该调用</li>
<li>ERROR_NO_SUCH_KAP(50) - 该操作指定的密钥区不存在</li>
<li>ERROR_KAP_ALREADY_EXIST(51) - 指定的密钥区已经存在</li>
<li>ERROR_WRONG_KAP_MODE(64) - 该密钥区不兼容</li>
<li>EXTEND_ERR_INPUT_TIMEOUT(65281) - PIN 输入超时</li>
<li>EXTEND_ERR_INPUT_COMM_ERR(65282) - PIN 输入通讯异常</li>
<li>EXTEND_ERR_INPUT_UNKNOWN(65283) - 未知的 PIN 输入错误</li>
参见 com.ccb.deviceservice.aidl.pinpad.Constant 下的常量定义:
Constant.ErrorCode:错误码定义
3.10.3.14. 是否连接外接密码键盘
3.10.3.15. 配置外接密码键盘属性
3.10.3.16. 显示信息
43
中国建设银行智能 POS 终端接口规范
3.10.3.17. 重置密码键盘
3.11 PBOC 流程
包名定义:com.ccb.deviceservice.aidl.pboc.IPBOC
3.11.1. 功能描述
3.11.2. 接口列表
函数原型 功能说明
void waitCard(Bundle cardOption, int timeout, PBOC 检卡
OnWaitCardListener listener);
void stopWaitCard(); 取消 PBOC 检卡
void readUPCard(OnUPCardListener listener); 读取手机芯片卡
44
中国建设银行智能 POS 终端接口规范
3.11.3. 接口说明
3.11.3.1. PBOC 检卡
45
中国建设银行智能 POS 终端接口规范
/**
* 检测到磁条卡
* @param track - 磁卡数据
* <ul>
* <li>PAN(String) - 主账号(卡号)</li>
* <li>TRACK1(String) - 磁道1数据</li>
* <li>TRACK2(String) - 磁道2数据</li>
* <li>TRACK3(String) - 磁道3数据</li>
* <li>SERVICE_CODE(String) - 服务码</li>
* <li>EXPIRED_DATE(String) - 卡片有效期</li>
* </ul>
*/
void onCardSwiped(in Bundle track);
/**
* IC卡上电成功
*/
void onCardPowerUp();
/**
* 非接卡激活成功
*/
void onCardActivate();
/**
* 检卡超时
*/
void onTimeout();
/**
* 检卡出错
* @param error - 错误码
* <ul>
* <li>SERVICE_CRASH(99) - 服务崩溃</li>
* <li>REQUEST_EXCEPTION(100) - 请求异常</li>
* <li>MAG_SWIPE_ERROR(1) - 刷卡失败</li>
* <li>IC_INSERT_ERROR(2) - 插卡失败</li>
* <li>IC_POWERUP_ERROR(3) - 卡上电失败</li>
* <li>RF_PASS_ERROR(4) - 非接挥卡失败</li>
* <li>RF_ACTIVATE_ERROR(5) - 非接卡激活失败</li>
* <li>RF_NEED_RETRY(6) – 需要重新检卡</li>
* <li>RF_MULTI_CARD(7) – 感应区内多卡存在</li>
* </ul>
* @param message - 错误描述
46
中国建设银行智能 POS 终端接口规范
*/
void onError(int error, String message);
}
3.11.3.2. 停止检卡
3.11.3.3. 读取手机芯片卡
/**
* 读手机芯片卡结果监听器
*/
interface OnUPCardListener {
/**
* 读卡成功回调
* @param data - 芯片卡卡数据
* <ul>
* <li>PAN(String) - 主账号(卡号)</li>
* <li>TRACK2(String) - 磁道2数据</li>
* <li>TRACK3(String) - 磁道3数据</li>
* <li>CARD_SN(String) - 卡片序列号</li>
* <li>EXPIRED_DATE(String) - 卡片有效期</li>
* <li>TLV_DATA(String) - 带标签(DF32,DF33,DF34)TLV数据</li>
* </ul>
*/
void onRead(out Bundle data);
47
中国建设银行智能 POS 终端接口规范
/**
* 读卡错误回调
* @param error - 错误码
* <ul>
* <li>ERROR_DETECT_CARD(1) - 识别卡失败</li>
* <li>ERROR_READ_SN(2) - 读卡序列号失败</li>
* <li>ERROR_READ_TRACK(3) - 读卡信息失败</li>
* <li>ERROR_SERVICE_CRASH(4) - 设备服务异常</li>
* </ul>
* @param message - 错误描述
*/
void onError(int error, String message);
}
参见 com.ccb.deviceservice.aidl.pboc.Constant 下的常量定义:
Constant.ErrorCode:错误码定义;
48
中国建设银行智能 POS 终端接口规范
* <li>SIMPLE_PROCESS(12) - 简易流程交易</li>
* <li>Q_QUERY(13) - qPBOC查询</li>
* <li>ICC_QUERY(20) - 卡日志查询</li>
* </ul>
2、 请求参数说明
* <ul>
* <li>cardType(int):卡类型,CARD_INSERT(0)-接触式IC卡,CARD_RF(1)-非
接触式卡</li>
* <li>authAmount(int):授权金额(交易金额)</li>
* <li>isSupportQ(boolean):是否支持QPBOC</li>
* <li>isSupportSM(boolean):是否支持国密</li>
* <li>isECLoad(boolean):是否读取圈存日志</li>
* <li>isSupportEC(boolean):是否支持电子现金</li>
* <li>isQPBOCForceOnline(boolean):QPBOC是否支持强制联机</li>
* <li>merchantName(String):商户名称</li>
* <li>merchantId(String):商户号</li>
* <li>terminalId(String):终端号</li>
* <li>outputEmvLog(boolean):是否输入完整内核日志到sd卡下</li>
* <li>isPBOCForceOnline(boolean):接触是否支持强制联机</li>
* <li>isForceInputPin(boolean):是否强制输密</li>
* <li>needCDCVM(boolean):是否支持cdcvm</li>
* <li>isPreAgain(boolean):是否二次出卡,Amex Express Pay使用</li>
* </ul>
3、 交易流程回调处理
包名定义:com.ccb.deviceservice.aidl.pboc.OnPBOCHandler
/**
* PBOC交易流程回调接口
*/
interface OnPBOCHandler {
/**
* 请求输入金额
*/
void onRequestAmount();
/**
* 请求应用选择
* @param appList - 应用列表
*/
void onSelectApplication(in List<String> appList);
/**
* 要求确认卡信息
* @param info - 卡片信息
* <ul>
* <li>PAN(String) - 主账号(卡号)</li>
49
中国建设银行智能 POS 终端接口规范
* <li>TRACK2(String) - 磁道2数据</li>
* <li>CARD_SN(String) - 卡片序列号</li>
* <li>SERVICE_CODE(String) - 服务码</li>
* <li>EXPIRED_DATE(String) - 卡片有效期</li>
* <li>CARD_HOLDER_NAME (String) –持卡人姓名</li>
* </ul>
*/
void onConfirmCardInfo(in Bundle info);
/**
* 要求输入PIN
* @param isOnlinePin 是否是联机pin
* @param retryTimes 脱机pin的输入次数
*/
void onRequestInputPIN(boolean isOnlinePin, int retryTimes);
/**
* 要求确认持卡人证件
* @param certType - 认证类型
* @param certInfo - 认证信息
*/
void onConfirmCertInfo(String certType, String certInfo);
/**
* 联机处理请求
* @param aaResult 卡片分析结果,联机数据
* <ul>
* <li>RESULT(int) - 结果类型:QPBOC_ARQC(201) - qPBOC联机请求;
AARESULT_ARQC(2) - 行为分析结果ARQC</li>
* <li>PAN(String) –卡号</li>
* <li>TRACK2(String) –二磁道数据</li>
* <li>CARD_SN (String) –卡序列号</li>
* <li>CARD_HOLDER_NAME (String) –持卡人姓名</li>
* <li>EXPIRED_DATE (String) –卡片失效期</li>
* <li>DATE (String) –交易日期,格式:yyMMdd</li>
* <li>TIME (String) –交易时间,格式:HHmmss</li>
* <li>CARD_ORG(String) –卡组织</li>
* <li>ARQC_TLV(String) –联机请求卡片55域TLV数据</li>
* <li>REVERSAL_TLV(String) - IC卡冲正TLV数据</li>
* </ul>
*/
void onRequestOnlineProcess(in Bundle aaResult);
/**
50
中国建设银行智能 POS 终端接口规范
* PBOC交易结果,见于简易流程,qPBOC,以及交易过程失败等
* @param result - 交易结果
* <ul>
* <li>EMV_ICC_QUERY (8) - 读卡片交易日志</li>
* <li>EMV_COMPLETE(9) - EMV简易流程结束</li>
* <li>EMV_ERROR(11) - EMV内核错误</li>
* <li>EMV_FALLBACK(12) - FALLBACK </li>
* <li>EMV_DATA_AUTH_FAIL(13) - 脱机数据认证失败</li>
* <li>EMV_APP_BLOCKED(14) - 应用被锁定</li>
* <li>EMV_NOT_ECCARD(15) - 非电子现金卡</li>
* <li>EMV_UNSUPPORT_ECCARD(16) - 该交易不支持电子现金卡</li>
* <li>EMV_AMOUNT_EXCEED_ON_PURELYEC(17) - 纯电子现金卡消费金额
超限</li>
* <li>EMV_SET_PARAM_ERROR(18) - 参数设置错误(9F7A) </li>
* <li>EMV_PAN_NOT_MATCH_TRACK2(19) - 主账号与二磁道不符</li>
* <li>EMV_CARD_HOLDER_VALIDATE_ERROR(20) - 持卡人认证失败</li>
* <li>EMV_PURELYEC_REJECT(21) - 纯电子现金卡被拒绝交易</li>
* <li>EMV_BALANCE_INSUFFICIENT(22) - 余额不足</li>
* <li>EMV_AMOUNT_EXCEED_ON_RFLIMIT_CHECK(23) - 交易金额超过非
接限额检查</li>
* <li>EMV_CARD_BIN_CHECK_FAIL(24) - 卡BIN检查失败</li>
* <li>EMV_CARD_BLOCKED(25) - 卡被锁</li>
* <li>EMV_MULTI_CARD_ERROR(26) - 多卡冲突</li>
* <li>EMV_BALANCE_EXCEED(27) - 余额超出</li>
* <li>EMV_NEED_TERMINATE_TRANSACTION(28) – 需要终止交易</li>
* <li>EMV_NEED_SEARCH_AGAIN(29) – 需要重新寻卡</li>
* <li>EMV_RFCARD_PASS_FAIL(60) - 挥卡失败</li>
* <li> EMV_NO_APPLICATION (61) - 读卡片日志失败,无卡片应用</li>
* <li>EMV_NO_ICC_RECORD (62) - 读卡片日志失败,无卡片记录</li>
* <li>EMV_QUERY_ICC_ERROR (63) - 读卡片日志失败,流程错误</li>
* <li>EMV_READ_TRACK2_FAIL (64) – 读卡片二磁道数据失败</li>
* <li>EMV_NOT_FINISHED (70) – EMV流程未结束</li>
* <li>EMV_ERR_FCI_FMT (71) – FCI格式错误</li>
* <li>AARESULT_TC(0) - 行为分析结果,交易批准(脱机)</li>
* <li>AARESULT_AAC(1) - 行为分析结果,交易拒绝</li>
* <li>AARESULT_ARQC(2) - 行为分析结果,请求联机</li>
* <li>REFER_TO_DEVICE(150) - 参考手机设备信息</li>
* <li>QPBOC_ARQC (201) - qPBOC交易结果,请求联机</li>
* <li>QPBOC_AAC(202) - qPBOC交易结果,交易拒绝</li>
* <li>QPBOC_ERROR(203) - qPBOC交易结果,交易失败</li>
* <li>QPBOC_TC(204) - qPBOC交易结果,交易批准</li>
* <li>QPBOC_CONT(205) - qPBOC结果,转接触式卡</li>
51
中国建设银行智能 POS 终端接口规范
* <li>ICC_LOG_COUNT(String) -交易日志记录数(读卡片交易日志返回)</li>
* <li>ICC_LOG_RECORDS(String) - 交易日志记录列表(TLV格式)( 读卡片交易
日志返回)</li>
52
中国建设银行智能 POS 终端接口规范
* <li>PAN(String) –卡号</li>
* <li>TRACK2(String) –二磁道数据</li>
* <li>CARD_SN (String) –卡序列号</li>
* <li>CARD_HOLDER_NAME (String) –持卡人姓名</li>
* <li>EXPIRED_DATE (String) –卡片失效期</li>
* <li>DATE (String) –交易日期,格式:yyMMdd</li>
* <li>TIME (String) –交易时间,格式:HHmmss</li>
* <li>CARD_ORG(String) –卡组织</li>
* </ul>
*/
void onTransactionResult(int result, in Bundle data);
}
4.建行交易仅联机要求说明
建行要求智能POS终端的所有交易(包括银联卡和外卡交易)和所有交易方式(插卡
和非接)都不允许脱机批准。故统一sdk服务需根据该接口的请求入参
isPBOCForceOnline(插卡强制联机标识)及isQPBOCForceOnline(非接强制联机
标识)决定交易是否强制联机(强制联机时,设置9F35标签值为0x21,标识终端仅联
机)。(目前应用入参都为强制联机,所以即便交易最终结果为TC时,也需按照
AAC的结果返回,避免出现脱机批准)
参见 com.ccb.deviceservice.aidl.pboc.Constant 下的常量定义:
Constant.TransType:交易类型定义;
Constant.PBOCData:PBOC 数据元标签定义;
Constant.EmvResult:EMV 交易流程结果码定义;
3.11.3.5. 终止 PBOC 流程
3.11.3.6. 更新 AID 参数
53
中国建设银行智能 POS 终端接口规范
* <ul>
* <li>1:新增</li>
* <li>2:删除</li>
* <li>3:清空</li>
* </ul>
aid – AID 参数,格式见补充说明
出参 无
返回值 更新成功返回 true,更新失败返回 false。
补充说明 AID 参数由 TLV 格式构成的字符串,包括如下 TAG:
1) 9F06 – AID
2) DF01 – 部分选择标志
3) 9F08,9F09 – 应用版本号
4) DF11 – 终端行为代码 TAC-默认
5) DF12 – 终端行为代码 TAC-联机
6) DF13 – 终端行为代码 TAC-拒绝
7) 9F1B – 最低限额
8) DF15 – 随机选择阈值
9) DF16 - 随机选择最大目标百分数
10) DF17 - 随机选择目标百分数
11) DF14 – DDOL
12) DF18 – 终端性能
13) 9F7B - 电子现金交易限额 EC 限额
14) DF19 - 非接触脱机最低限额
15) DF20 - 非接触交易限额
16) DF21 - 非接触 CVM 限额
示例 AID 值:
9F0608A000000333010106DF0101009F08020020DF1105D84000A800DF1205D84004F8
00DF130500100000009F1B0400000001DF150400000000DF160199DF170199DF14039F3
704DF1801019F7B06000000100000DF1906000000100000DF2006000999999999DF2106
000000100000
参见 com.ccb.deviceservice.aidl.pboc.Constant 下的常量定义:
Constant.Operation:操作类型定义;
3.11.3.7. 更新 CA 公钥参数
54
中国建设银行智能 POS 终端接口规范
出参
返回值 更新成功返回 true,更新失败返回 false。
补充说明 RID 参数由 TLV 格式构成的字符串,包括如下 TAG:
1) 9F06 – RID
2) 9F22 – 公钥索引
3) DF02 – 公钥模
4) DF03 – 哈希校验和
5) DF04 – 公钥指数
6) DF05 – 公钥失效期
示例 RID 值:
9F0605A0000000049F220106DF05083230313631323331DF060101DF070101DF0281F8C
B26FC830B43785B2BCE37C81ED334622F9622F4C89AAE641046B2353433883F307FB
7C974162DA72F7A4EC75D9D657336865B8D3023D3D645667625C9A07A6B7A137CF0
C64198AE38FC238006FB2603F41F4F3BB9DA1347270F2F5D8C606E420958C5F7D50A
71DE30142F70DE468889B5E3A08695B938A50FC980393A9CBCE44AD2D64F630BB33
AD3F5F5FD495D31F37818C1D94071342E07F1BEC2194F6035BA5DED3936500EB82D
FDA6E8AFB655B1EF3D0D7EBF86B66DD9F29F6B1D324FE8B26CE38AB2013DD13F
611E7A594D675C4432350EA244CC34F3873CBA06592987A1D7E852ADC22EF5A2EE
28132031E48F74037E3B34AB747FDF040103DF0314F910A1504D5FFB793D94F3B5007
65E1ABCAD72D9
参见 com.ccb.deviceservice.aidl.pboc.Constant 下的常量定义:
Constant.Operation:操作类型定义;
3.11.3.8. 导入交易金额
3.11.3.9. 导入应用选择结果
55
中国建设银行智能 POS 终端接口规范
补充说明
3.11.3.10. 导入 PIN 输入
3.11.3.11. 导入身份验证结果
3.11.3.12. 导入卡信息确认结果
56
中国建设银行智能 POS 终端接口规范
返回值 无
补充说明
3.11.3.13. 导入联机应答数据
57
中国建设银行智能 POS 终端接口规范
参见 com.ccb.deviceservice.aidl.pboc.Constant 下的常量定义:
Constant.PBOCData:PBOC 数据元标签定义;
Constant.OnlineResult:EMV 联机处理结果码定义;
3.11.3.15. 获取内核数据
58
中国建设银行智能 POS 终端接口规范
补充说明
59
中国建设银行智能 POS 终端接口规范
* </ul>
出参 无
返回值 PBOC 流程中内核返回的数据
补充说明 参见 com.ccb.deviceservice.aidl.pboc.Constant 下的常量定义:
Constant.PBOCData:PBOC 数据元标签定义;
Constant.CardOrg:卡组织常量定义;
卡组织常量:
* <ul>
* <li> VIS - VISA 卡(Constant.CardOrg.VISA)</li>
* <li> MCC -MASTER 卡(Constant.CardOrg.MASTER)</li>
* <li> MAE - AMEX 卡(Constant.CardOrg.AMEX)</li>
* <li> JCB - JCB 卡(Constant.CardOrg.JCB)</li>
* <li> CUP – 银联卡(Constant.CardOrg.CUP)</li>
* <li> 000 – 未知卡(Constant.CardOrg.UNKNOWN)</li>
* </ul>
Constant.CVM:持卡人验证方法常量定义;
持卡人验证方法常量:
* <ul>
* <li> CVM_NOCVM – 无需 CVM (Constant. CVM. CVM_NOCVM)</li>
* <li> CVM_SIGN – 签名 (Constant. CVM. CVM_SIGN)</li>
* <li> CVM_OFFLINE_PIN – 脱机 PIN (Constant. CVM. CVM_OFFLINE_PIN)</li>
* <li> CVM_ONLINE_PIN – 联机 PIN (Constant. CVM. CVM_ONLINE_PIN)</li>
* <li> CVM_PBOC_CERT – 证件验证 (Constant. CVM. CVM_PBOC_CERT)</li>
* <li> CVM_CONFCODE – 查看手机 (Constant. CVM. CVM_CONFCODE)</li>
* </ul>
3.11.3.18. 获取卡片候选应用信息
补充说明
3.12 设备信息
包名定义:com.ccb.deviceservice.aidl.deviceinfo.IDeviceInfo
60
中国建设银行智能 POS 终端接口规范
3.12.1. 功能描述
提供获取终端的序列号、设备型号、厂商、系统版本、固件版本等相关设备信息。
3.12.2. 接口列表
函数原型 功能说明
String getSerialNo(); 获取终端设备序列号
String getIMSI(); 获取终端 IMSI 号
String getIMEI(); 获取终端 IMEI 号
String getICCID(); 获取终端 SIM 卡 ICCID 号
String getManufacture(); 获取厂商名称
3.12.3. 接口说明
3.12.3.1. 获取设备序列号
61
中国建设银行智能 POS 终端接口规范
补充说明
3.12.3.2. 获取 IMSI 号
3.12.3.3. 获取 IMEI 号
3.12.3.4. 获取 ICCID 号
3.12.3.5. 获取厂商名称
62
中国建设银行智能 POS 终端接口规范
出参 无
返回值 设备厂商名称
补充说明
3.12.3.6. 获取终端型号
63
中国建设银行智能 POS 终端接口规范
3.12.3.10. 获取终端固件版本
3.12.3.11. 获取终端硬件版本
3.12.3.12. 更新终端系统时间
64
中国建设银行智能 POS 终端接口规范
public TusnData() {}
65
中国建设银行智能 POS 终端接口规范
3.12.3.14. 设置虚拟按键
3.12.3.15. 获取设备硬件序列号
3.12.3.16. 设置状态栏下拉状态
3.13 参数文件
包名定义:com.ccb.deviceservice.aidl.paramfile.IParamFile
66
中国建设银行智能 POS 终端接口规范
3.13.1. 功能描述
实现参数配置文件参数的判断和读取功能。
3.13.2. 接口列表
函数原型 功能说明
booleanisExists(); 检查参数文件是否存在
booleanisFirstRun(); 检查是否首次运行
boolean getBoolean(String name, boolean defaultValue); 获取 BOOL 类型参数
String geString(String name, String defaultValue); 获取 String 类型参数
boolean setBoolean(String name, boolean value); 设置 BOOL 类型参数
boolean seString(String name, String value); 设置 String 类型参数
3.13.3. 接口说明
3.13.3.1. 检查是否存在
函数原型 booleanisExists();
功能说明 检查参数文件是否存在
入参 无
参数说明
出参 无
返回值 存在返回 true,不存在返回 false
补充说明
3.13.3.2. 是否首次运行
函数原型 booleanisFirstRun();
功能说明 检查是否首次运行
入参 无
参数说明
出参 无
返回值 是返回 true,不是返回 false
补充说明
67
中国建设银行智能 POS 终端接口规范
68
中国建设银行智能 POS 终端接口规范
3.14 钱箱
包名定义:com.ccb.deviceservice.aidl.cashbox.ICashBox
3.14.1. 功能描述
实现 POS 设备外接钱箱功能。
3.14.2. 接口列表
函数原型 功能说明
void open(OnBoxListener listener); 打开钱箱
3.14.3. 接口说明
3.14.3.1. 打开钱箱
/**
69
中国建设银行智能 POS 终端接口规范
* 钱箱监听接口定义
*/
interface OnBoxListener {
/**
* 钱箱打开成功回调
*/
void onSuccess();
/**
* 钱箱打开失败回调
* @param error - 错误码
* <ul>
* <li>ERROR_NONE(0) - 成功</li>
* <li>ERROR_NONE(141) - 设备不存在</li>
* <li>ERROR_NONE(137) - 已经打开</li>
* <li>ERROR_NONE(1) - 失败</li>
* <li>ERROR_NONE(255) - 未知异常</li>
* </ul>
* @param message - 错误描述
*/
void onFail(int error, String message);
}
2、错误码
参见 com.ccb.deviceservice.aidl.cashbox.Constant 下的常量定义:
Constant.ErrorCode:错误码;
3.15 签名板
包名定义:com.ccb.deviceservice.aidl.signpanel.ISignPanel
3.15.1. 功能描述
实现 POS 设备签名板功能。
3.15.2. 接口列表
函数原型 功能说明
boolean open(); 打开签名板
70
中国建设银行智能 POS 终端接口规范
3.15.3. 接口说明
3.15.3.1. 打开签名板
3.15.3.2. 开始签名
71
中国建设银行智能 POS 终端接口规范
/**
* 签名成功
* @param bitmap - 签名图像
*/
void onSigned(in Bitmap bitmap);
/**
* 签名取消
*/
void onCancel();
/**
* 签名超时
*/
void onTimeout();
/**
* 其他指令回调
* @param cmd - 指令
* @param state - 状态
*/
void onCmdResp(int cmd, int state);
/**
* 签名板断开连接
*/
void onDisconnected();
/**
* 签名失败
* @param error - 错误码,详见 Constant.ErrorCode 类
* <ul>
* <li>ERROR_ABOLISH(0x1B) - 系统异常 </li>
* <li>ERROR_ALLOCERR(0x8E) - 内存不足</li>
* <li>ERROR_DEVICE_DISABLE(0x8D) - 设备不存在或无法使
用</li>
* <li>ERROR_DEVICE_USED(0x89) - 设备已打开</li>
* <li>ERROR_HANDLE(0x8C) - 句柄错误</li>
* <li>ERROR_OTHER(0x01) - 其他错误</li>
* <li>ERROR_PARAM(0x8B) - 参数错误</li>
* <li>ERROR_SIGN_COMMERR(0x33) - 通信失败(只在操作外
置时返回)</li>
* <li>ERROR_NONE(0x00) - 正常,无错误</li>
* </ul>
*/
void onFail(int error);
}
72
中国建设银行智能 POS 终端接口规范
3.15.3.3. 关闭签名板
3.15.3.4. 设置参数
3.15.3.5. 获取参数值
3.15.3.6. JBIG 压缩
73
中国建设银行智能 POS 终端接口规范
入参 data - 要进行压缩的数据
出参 dataType - 压缩前数据的格式,详见 Constant.DataType
compData - 压缩后数据
返回值 成功:true,失败:false
补充说明
3.15.3.9. 二值位图转成适合进行针打的位图(废弃)
74
中国建设银行智能 POS 终端接口规范
width - 转换后位图的宽度
height - 转换后位图的高度
size - 转换后位图的大小
返回值 成功:true,失败:false
补充说明
3.16.1. 功能描述
3.16.2. 接口列表
函数原型 功能说明
boolean powerUp(out BytesValue atr); 卡上电
3.16.3. 接口说明
3.16.3.1. 卡上电
75
中国建设银行智能 POS 终端接口规范
3.16.3.2. 卡下电
3.16.3.3. 卡是否在位
3.16.3.5. 设置上电模式
76
中国建设银行智能 POS 终端接口规范
补充说明 PowerupMode 类:
public interface PowerupMode {
int MODE_EMV = 0x01;
int MODE_BPS_576 = 0x02;
int MODE_BPS_384 = 0x03;
int MODE_BPS_192 = 0x04;
int MODE_SHB = 0x05;
int MODE_ISO = 0x06;
int MODE_TCR = 0x07;
int MODE_DEFAULT = 0x01;
}
3.16.3.6. 设置上电电压
3.17 二代证读卡器
包名定义:com.ccb.deviceservice.aidl.idcardreader.IIDCardReader
3.17.1. 功能描述
该设备用于采集二代证数据信息。
3.17.2. 接口列表
函数原型 功能说明
void searchCard(in Bundle param, OnSearchListener listener); 开始读卡
77
中国建设银行智能 POS 终端接口规范
3.17.3. 接口说明
3.17.3.1. 开始读卡
二代证寻卡监听器说明:
interface OnSearchListener{
/**
* 读卡成功回调
* @param cardInfo -卡片信息,根据samv模式及nfc读卡模式返回信息如下:
* <ul>samv模式
* <li>name(String) - 姓名</li>
* <li>sex(String) - 性别,如:男</li>
* <li>nation(String) - 民族</li>
* <li>birthday(String) - 出生日期,格式yyyyMMdd</li>
* <li>address(String) - 地址</li>
* <li>idCardNo(String) - 身份证号</li>
* <li>department(String) - 签发机构</li>
* <li>signDate(String) - 签发日期,格式yyyyMMdd</li>
* <li>expiredDate(String) - 有效日期,格式yyyyMMdd</li>
* <li>imageData(byte[]) - 证件照图象数据</li>
* <ul>nfc模式
* <li>name(String) - 姓名</li>
* <li>sex(String) - 性别,如:男</li>
* <li>nation(String) - 民族(大陆身份证具备此字段,港澳台居住证无此字段返
回) </li>
* <li>birthday(String) - 出生日期,格式yyyyMMdd</li>
* <li>address(String) - 地址</li>
* <li>idCardNo(String) - 身份证号</li>
78
中国建设银行智能 POS 终端接口规范
* <li>department(String) - 签发机构</li>
* <li>signDate(String) - 签发日期,格式yyyyMMdd</li>
* <li>expiredDate(String) - 有效日期,格式yyyyMMdd</li>
* <li>imageData(byte[]) - 证件照图象数据</li>
* <li>dn(String) - 证件唯一编码 </li>
* 以下为港澳台居住证具备:
* <li>cardType(String) – 卡类型,详见Constant.CardType(港澳台:J) </li>
* <li>passportNo(String) – 通行证号码 </li>
* <li>visaCount(String) – 签证次数 </li>
* </ul>
*/
void onSuccess(in Bundle cardInfo);
/**
* 读卡失败回调
* @param error - 错误码
* @param message - 错误描述
*/
void onError(int error, String message);
/**
* 读卡超时回调
*/
void onTimeout();
}
3.17.3.2. 停止读卡
3.18 底座
包名定义:com.ccb.deviceservice.aidl.pedestal.IPedestal
79
中国建设银行智能 POS 终端接口规范
3.18.1. 功能描述
该设备用于底座相关操作。
3.18.2. 接口列表
函数原型 功能说明
boolean isConnected(); 底座是否和 POS 已连接
3.18.3. 接口说明
80
中国建设银行智能 POS 终端接口规范
4. 附录
1、检卡
2、检卡结果回调
3、启动PBOC流程
4、请求输入金额
5、导入交易金额
6、请求应用选择(多应用卡)
7、导入应用选择结果
8、请求确认卡号信息
9、卡号信息确认
10、请求PIN输入
11、输入PIN(联机/脱机PIN)
12、请求持卡人身份认证
13、导入持卡人认证结果
14、交易联机请求
15、联机数据上送
16、联机数据应答
17、导入联机响应数据
发卡行数据认证/执行发卡行脚本
18、交易结果通知(批准/拒绝/出错)
19、结束PBOC交易流程
4.2 密钥索引说明
为统一各厂商密钥存储差异及应用密钥下装,做如下约定:
1. 密钥索引使用范围:1-30。
2. 密钥索引 1-20 号由总行使用,地方版应用建议使用 20-30 号索引值。
总行密钥使用情况如下:
81
中国建设银行智能 POS 终端接口规范
密钥索引 KeyId 应用
1 信用卡中心惠兜圈支付(总行版)
2 信用卡中心缴费通支付(总行版)
3 保留
4 保留
5 保留
6 建行支付个金部(总行版)
7 建行支付个金部(总行版)
8 建行支付个金部(总行版)
9 保留
10 保留
11 保留
12 保留
13 保留
14 保留
15 保留
16 保留
17 保留
18 保留
19 保留
20 保留
82