Newland NSDK MDB开发指南
· 阅读需 6 分钟
修订表
- 版本1.0,2023年8月31日,创建文档。
- 版本1.1,2023年9月25日,更新“MDBFunctionCallBack”及其参数描述。
- 版本1.2,2023年11月23日,增加第3章“事务流程”以介绍API调用流程。
Newland NSDK MDB开发指南 修订版 V1.2 福建新大陆支付技术有限公司 2023年11月
1. 引言 本文档旨在介绍NSDK MDB库的接口和所有参数。
2. 接口
2.1 初 始化
MDBModule
类
- 方法:
void init()
- 描述:初始化MDB模块库。在调用其他接口之前必须先调用此方法。
- 异常:
MDBException
2.2 设置MDB配置
MDBModule
类
- 方法:
void setMDBConfig(MDBConfiguration mdbConfiguration)
- 参数:
mdbConfiguration
:MDB配置数据,详情见下文“MDBConfiguration”。
- 描述:设置MDB配置。可以使用“MDBConfiguration”对象一次性设置所有配置。
- 异常:
MDBException
MDBConfiguration
类定义了各种配置参数,包括无现金配置信息、国家代码、货币单位、小数位数、最大响应时间、是否支持退款、是否支持显示、是否支持多售货、是否支持现金销售等。
当然,这里是翻译的内容:
2.2 设置 MDB 配置
可以通过一个 MDBConfiguration
对象设置所有配置:
class MDBConfiguration {
/* 无现金配置信息,例如,目前仅支持 Level 01 */
byte featureLevel = (byte) 0x01; /* 表示读卡器的功能级别 */
byte countryCodeH = (byte) 0x18; /* 国家代码由 countryCodeH 和 countryCodeL 组成,左侧数字为 0 表示使用国际电话代码来表示国家。例如,美国代码是 00 01H(countryCodeH = 00 和 countryCodeL = 01)。 */
byte countryCodeL = (byte) 0x40; /* 左侧数字为 1 表示使用 ISO 4217 数字货币代码的最新版本。例如,美元代码为 18 40H(countryCodeH = 18 和 countryCodeL = 40)。 */
byte scaleFactor = (byte) 0x01; /* 用于缩放 VMC 和读卡器之间传输的所有货币值的乘数 */
byte decimalPlaces = (byte) 0x02; /* 用于通信货币值的小数位数 */
byte maxResponseTime = (byte) 0x1E; /* 应用程序最大响应时间(秒) */
byte refundSupport = (byte) 0x01; /* 表示读卡器是否支持退款 */
byte displaySupport = (byte) 0x01; /* 表示读卡器是否支持显示 */
byte multiVendSupport = 0; /* 表示读卡器是否支持多次销售 */
byte cashSaleSupport = 0; /* 表示读卡器是否支持现金销售 */
byte cashlessAddress = 0x10; /* 表示读卡器的地址,0x10 或 0x60 */
/* Level03 可选功能 */
byte fileTransLayerSupport = 0; /* 是否支持文件传输层 */
byte monetaryFormat = 0; /* 0 = 16 位货币格式(默认),1 = 32 位货币格式 */
byte multiCurrencySupport = 0; /* 支持多货币/多语言 */
byte negativeVendAllow = 0; /* 允许负销售 */
byte dataEntryAllow = 0; /* 允许数据输入 */
byte alwaysIdleAllow = (byte) 0x01; /* 允许“始终空闲”状态 */
/* 设备信息索引 */
byte[] manufactureCode = "NLD".getBytes(); /* 制造商代码 - ASCII - 最多 3 字节 */
byte[] serialNumber = null; /* 序列号 - ASCII - 12 字节 */
byte[] modelNumber = null; /* 型号 - ASCII - 12 字节 */
byte[] softwareVersion = null; /* 软件版本 - 打包的 BCD - 2 字节 */
/* 消息处理 */
int sessionIdleTimeout = 60;
int vendTimeout = 60;
/* 调试级别 */
int debug = 0;
......
}
以上是关于 MDBConfiguration
类的详细配置说明。
2.3 设置MDB回调
MDBModule
类
- 方法:
void setMDBCallback(MDBFunctionCallBack mdbCallback)
- 参数:
mdbCallback
:要设置到MDB模块的函数回调,之后在接收到相应指令时将触发这些回调。
- 描述:设置MDB函数回调到库中,可以使用这些回调执行详细操作。
- 异常:
MDBException
MDBFunctionCallBack
接口定义了一系列回调方法,包括重置、设置MCU配置信息、获取价格信息、启用和禁用读卡器、请求售货进度、取消售货、售货成功、售货失败、售货超时、会话完成、现金销售、请求充值、协商最大退款金额、获取VMC信息、启用L3特性等。
2.4 执行MDB
MDBModule
类
- 方法:
void perform()
- 描述:执行MDB直到调用“停止”。
2.5 停止MDB
MDBModule
类
- 方法:
void stop()
- 描述:停止事务并释放事务线程。
2.6 获取MDB设备信息
MDBModule
类
- 方法:
byte[] getMDBDeviceInfo(MDBDeviceInfoType infoType)
- 参数:
infoType
:MDB设备信息的类型,详情见下文。
- 描述:通过输入的类型获取MDB信息。
- 异常:
MDBException
2.7 清理配置
MDBModule
类
- 方法:
void cleanUp()
- 描述:清理设置到MCU的配置。这只能在“停止事务”之后和退出应用程序之前调用一次。
- 异常:
MDBException
3. 事务流程 3.1 API调用流程 3.2 初始化流程 3.3 标准售货流程