以下内容为DLL说明文档,本人没有理解,请大家写一个详尽的C#调用代码。非常感谢!
1.接口采用DLL动态加载方式,提供一个DLL名为KeeperClient.dll供应用程序调用,里面提供一个函数:
int __stdcall misposTrans(void* input, void* output)。
银行卡的全部交易功能均通过此函数交互,根据不同的参数实现不同的功能。
2接口函数原型说明
int __stdcall misposTrans(void* input, void* output)
其中输入输出结构的内容为:假如字段实际长度小于要求的长度,请后补空格,假如该交易没用该字段,请用空格补齐,其中交易金额为12为定长,以分为单位,不足12位左补零。结构定义如下:
typedef struct
{
char TransType[2]; //交易代码
char CardNo[19]; //卡号
char Amount[12]; //交易金额
char Tip[12]; //小费金额(暂时不用,空格补齐)
char MisBatchNo[6]; //MIS批次号(暂时不用,空格补齐)
char MisTraceNo[6]; //MIS流水号(暂时不用,空格补齐)
char TransTime[6]; //交易时间
char TransDate[8]; //交易日期
char ExpDate[4]; //卡片有效期
char Track2[37]; //二磁道信息(暂时不用,空格补齐)
char Track3[104]; //三磁道信息(暂时不用,空格补齐)
char ReferNo[8]; //系统检索号,撤销时需要传入原交易检索号
char AuthNo[6]; //授权码 (暂时不用,空格补齐)
char ReturnCode[2]; //返回码(MISPOS系统返回,返回码为“00”表示交易成功,否则表示交易失败)
char TerminalId[15]; //终端号
char MerchantId[12]; //商户号
char InstallmentTimes[2]; //MISPOS系统返回 (暂时不用,空格补齐)
char TC[16]; //MISPOS系统返回 (暂时不用,空格补齐)
char OldAuthDate[8]; //原交易日期,撤销交易时传入
char MerchantNameEng[50]; //商户名称(英文)
char MerchantNameChs[40]; //商户中文名称
char TerminalTraceNo[6]; //终端流水号
char TerminalBatchNo[6]; //终端批次号
char IcCardId[4]; //MISPOS系统返回(暂时无需处理)
char ForeignCardTraceNo[24]; //MISPOS系统返回(暂时无需处理)
char Remark[300]; //MISPOS系统返回(暂时无需处理)
char CardType[20]; //MISPOS系统返回(暂时无需处理)
char TransName[20]; //交易中文名称
char TransTotal[800]; //交易总账(暂时无需处理)
char DeviceInitFlag[1]; //MISPOS系统返回(暂时无需处理)
char Message[100]; //交易失败时,返回中文错误描述信息
char IssuId[4]; //发卡行代码
char IssuName[20]; //发卡行名称
char Platid[10]; //收银台号
char Operid[10]; //操作员号
} ST_ICBC_MIS;
3. 交易说明
1) 消费:
输入:交易代码(05) 交易金额
输出:卡号 金额 MIS流水号 交易时间 交易日期 有效期 检索参考号 返回码 终端号 商户编号 英文商户名称 商户名称 终端流水号 终端批次号 交易名称 交易结果描述信息
2) 撤销/退货:
输入:交易代码(04) 交易金额 检索参考号 原交易日期 终端号(退货需要)
输出:卡号 金额 MIS流水号 交易时间 交易日期 有效期 检索参考号 返回码 终端号 商户编号 英文商户名称 商户名称 终端流水号 终端批次号 交易名称 交易结果描述信息
3) 余额查询:
输入:交易代码(10)
输出:返回码 交易结果描述信息
4) 重打印:
输入:交易代码(13)检索参考号(重打任一笔传入,重打上笔不传)
输出:卡号 金额 MIS流水号 交易时间 交易日期 检索参考号 返回码 终端号 商户编号 英文商户名称 商户名称 终端流水号 终端批次号 交易名称 交易结果描述信息
1.接口采用DLL动态加载方式,提供一个DLL名为KeeperClient.dll供应用程序调用,里面提供一个函数:
int __stdcall misposTrans(void* input, void* output)。
银行卡的全部交易功能均通过此函数交互,根据不同的参数实现不同的功能。
2接口函数原型说明
int __stdcall misposTrans(void* input, void* output)
其中输入输出结构的内容为:假如字段实际长度小于要求的长度,请后补空格,假如该交易没用该字段,请用空格补齐,其中交易金额为12为定长,以分为单位,不足12位左补零。结构定义如下:
typedef struct
{
char TransType[2]; //交易代码
char CardNo[19]; //卡号
char Amount[12]; //交易金额
char Tip[12]; //小费金额(暂时不用,空格补齐)
char MisBatchNo[6]; //MIS批次号(暂时不用,空格补齐)
char MisTraceNo[6]; //MIS流水号(暂时不用,空格补齐)
char TransTime[6]; //交易时间
char TransDate[8]; //交易日期
char ExpDate[4]; //卡片有效期
char Track2[37]; //二磁道信息(暂时不用,空格补齐)
char Track3[104]; //三磁道信息(暂时不用,空格补齐)
char ReferNo[8]; //系统检索号,撤销时需要传入原交易检索号
char AuthNo[6]; //授权码 (暂时不用,空格补齐)
char ReturnCode[2]; //返回码(MISPOS系统返回,返回码为“00”表示交易成功,否则表示交易失败)
char TerminalId[15]; //终端号
char MerchantId[12]; //商户号
char InstallmentTimes[2]; //MISPOS系统返回 (暂时不用,空格补齐)
char TC[16]; //MISPOS系统返回 (暂时不用,空格补齐)
char OldAuthDate[8]; //原交易日期,撤销交易时传入
char MerchantNameEng[50]; //商户名称(英文)
char MerchantNameChs[40]; //商户中文名称
char TerminalTraceNo[6]; //终端流水号
char TerminalBatchNo[6]; //终端批次号
char IcCardId[4]; //MISPOS系统返回(暂时无需处理)
char ForeignCardTraceNo[24]; //MISPOS系统返回(暂时无需处理)
char Remark[300]; //MISPOS系统返回(暂时无需处理)
char CardType[20]; //MISPOS系统返回(暂时无需处理)
char TransName[20]; //交易中文名称
char TransTotal[800]; //交易总账(暂时无需处理)
char DeviceInitFlag[1]; //MISPOS系统返回(暂时无需处理)
char Message[100]; //交易失败时,返回中文错误描述信息
char IssuId[4]; //发卡行代码
char IssuName[20]; //发卡行名称
char Platid[10]; //收银台号
char Operid[10]; //操作员号
} ST_ICBC_MIS;
3. 交易说明
1) 消费:
输入:交易代码(05) 交易金额
输出:卡号 金额 MIS流水号 交易时间 交易日期 有效期 检索参考号 返回码 终端号 商户编号 英文商户名称 商户名称 终端流水号 终端批次号 交易名称 交易结果描述信息
2) 撤销/退货:
输入:交易代码(04) 交易金额 检索参考号 原交易日期 终端号(退货需要)
输出:卡号 金额 MIS流水号 交易时间 交易日期 有效期 检索参考号 返回码 终端号 商户编号 英文商户名称 商户名称 终端流水号 终端批次号 交易名称 交易结果描述信息
3) 余额查询:
输入:交易代码(10)
输出:返回码 交易结果描述信息
4) 重打印:
输入:交易代码(13)检索参考号(重打任一笔传入,重打上笔不传)
输出:卡号 金额 MIS流水号 交易时间 交易日期 检索参考号 返回码 终端号 商户编号 英文商户名称 商户名称 终端流水号 终端批次号 交易名称 交易结果描述信息
解决方案:100分
昨天那贴不是回了吗?还够不详细吗?