金金融融PPOOSS机机与与收收银银机机标标准准接接口口函函数数说说明明2013年3月(一)动态库接口定义///summary动态库名字:LIBSAND.DLL(WIN)LIBSAND.SO(LINUX)///ZLSH.LIB(DOS)///函数名称:card_trans///函数功能:按传入数据完成刷卡任务///com串口号///upData传入数据///downData传出数据////summaryvoidcard_trans(intcom,char*upData,char*downData);1.传入传出数据结构定义:(C语言)structstrTransUp{structstrTransDown{charOperateType[2];charOperateType[2];charTransType[2];charTransType[2];charCardType[2];charCardType[2];charCashRegNo[6];charResponseCode[2];charCasherNo[6];charResponseMsg[40];charAmount[12];charCashRegNo[6];charCashTraceNo[6];charCasherNo[6];charOriginTraceNo[6];charAmount[12];charReserved[48];charSellteNum[6];};charMerchantID[15];charMerchantName[40];charTerminalID[8];charCardNo[19];charExp_Date[4];charBankNo[6];charTransDate[8];charTransTime[6];charAuth_Code[6];charSysRefNo[12];charCashTraceNo[6];charOriginTraceNo[6];charSysTracdNo[6];charOriginSysTraceNo[6];charReserved[48];};批次(概念):上一笔结算到本次结算之间称为一批次。撤销(概念):当批次且当天内对之前一笔消费(当天)进行全额撤销。正常情况下一天营业结束做结算,所以以当天为撤销的有效期。退货(概念):隔天,对前一笔消费进行全额或部分退货。金额问题:传入金额为收银机传入需要消费或撤销的金额,传出金额为实际的消费或撤销金额,固将传入金额与传出金额做比较。(联华OK卡交易,如下发金额大于卡内余额,联华后台会将卡内余额扣掉,返回实际的交易金额,所以联华OK卡交易时要判断金额)。2.传入字段说明:字段名称长度数据类型备注操作类型2ASC固定值(见操作类型表)交易类型2ASC固定值(见交易类型表)卡类型2ASC固定值(见卡类型表)收银机编号6ASC商场内唯一(左补零,无则全补空格)柜员号6ASC(左补零,无则全补空格)金额12ASC以分位单位(左补零)收银流水号6ASC同一收银机内唯一(左补零,无则全补空格)系统流水号6ASC撤销时填写预留字段48ASC银行卡退货交易时,左起12位参照号4位日期MMDD支付宝、微信条码支付交易时付款码从左起传入条形码3.传出字段说明:字段名称长度数据类型备注操作类型2ASC固定值(见操作类型表)交易类型2ASC固定值(见交易类型表)卡类型2ASC固定值(见卡类型表)返回码2ASC“00”为成功,其它详见错误返回码表返回信息40ASC返回码对应的信息收银机编号6ASC柜员号6ASC金额12ASC交易的实际金额,以分位单位(左补零)联华OK卡交易,如下发金额大于卡内余额,联华后台会将卡内余额扣掉,返回实际的交易金额,所以联华OK卡交易时要判断金额银行卡交易金额返回为收银机下发金额。结算批次6ASC商户号15ASC商户名称40ASC终端号8ASC卡号19ASC卡有效期4ASC发卡行编码6ASC(见发卡行编码表)交易日期8ASCYYYYMMDD交易时间6ASCHHMMSS授权号6ASC系统参照号12ASC退货时要用到的参照号收银流水号6ASC原收银流水号6ASC撤销原样返回系统流水号6ASC原系统流水号6ASC预留字段48ASC巍康和斯玛特交易时,返回12位卡余额+24位斯玛特批次号联华卡交易时,返回12位卡余额+15票据号微信、支付宝的交易,返回的应是交易号,最大长度为32有优惠交易时,预留字段前12位放实际交易金额,后12位放优惠金额。(二)相关表定义1.操作类型表:操作代码操作类型备注“A0”交易返回“A1”“B0”查询返回“B1”………2.交易类型表:交易代码交易类型备注“30”消费返回“31”“40”撤销返回“41”“50”退货返回“51”(支持部分退货功能)“90”初始化斯玛特,巍康卡用,银行卡无此项“91”签到返回“91”“92”结算返回“92”“80”余额查询返回“81”“EG”条码支付消费返回“EH”“EI”条码支付撤销返回“EJ”3.卡类型表:卡类型卡名备注01银行卡02会员卡03SMART卡05联华OK卡06巍康卡07联华积点卡12畅购卡25苏州通26北京瑞通27北京奥斯卡29同方会员卡30巾帼卡31东方文化卡32美廉美会员卡33便利通卡34索迪斯39高汇通40纽斯达卡41移动手机钱包(交易)42都市旅游卡43上海公交卡45交行分期48得仕卡49AEONJUSCO卡51银商购物卡51银商资讯卡(徐家汇)57雅高在线磁条卡58雅高在线IC卡59山东一卡通61南京市民卡62雅高脱机卡64招行积分一体化65综合保险卡66苏州一卡通消费67唐山远洋城68羊城通卡69普天银通磁条卡70普天银通非接卡73大众商务卡74指付通75欧诺卡77润通赢点通78徐家汇商城卡79锦江磁条卡80共享一卡通83开心购卡86东方CJ礼品卡87建行积分88爱心卡89无锡市民卡90易士卡91商盟卡92瑞祥商务卡93电信翼支付95河北一卡通96中国移动手机支付-NFC支付98爱农智慧卡E1信联卡E2中欣支付卡E3春秋商旅卡E4发达卡E5交行信用卡积分E7苏州通充值E8瑞得卡E9杉德银行积分(平安)F2壹卡会F3付费通F4索迪斯磁条卡F5平安付壹钱包F6广发积分F7上海银行积分F8支付宝当面付G1新生易卡G2微信支付G3格林豪泰储值卡4.字段与交易类型关系表:(M为必填字段)交易类型操作类型交易类型卡类型收银机编号操作员号金额收银机流水号原收银机流水号预留字段消费A030MM撤销A040MMM退货A050MMM初始化A090M签到A091M结算A092M银行卡余额查询A080M条码消费A0EGMMM条码撤销A0EIMMMM…………………………5.条码支付交易流程支付宝&微信支付消费POS动态库收银机F8G201:条码支付:收银机端选择条码支付键,;02:卡类型传入:选择支付宝/微信支付卡类型读入条码;03:数据传入:根据接口将交易类型、卡类型、条码等信息传入动态库;04:卡类型判断:根据收银机传入的卡类型判断微信、支付宝直接传递给对应的程序;05:支付宝支付:卡类型为F8时由支付宝处理;06:微信支付:卡类型为G2时由微信支付处理;05支付宝支付0401条码支付卡类型判断06微信支付03数据传入卡类型传入02条码支付消费撤销POS动态库收银机F801:条码支付撤销:收银机端选择条码支付撤销按键,;02:卡类型传入:扫描枪扫描订单号传送给POS,选择需撤销卡类型;03:数据传入:根据接口将交易类型、卡类型、订单号信息传入动态库;04:卡类型判断:根据收银机传入的交易类型、订单号、卡类型传送给对应的应用处理;05:支付宝撤销:卡类型为F8支付宝时由支付宝处理;06:微信撤销:订卡类型为G2微信时由微信支付处理;01条码支付撤销03数据传入05支付宝撤销06微信撤销G202卡类型传入卡类型判断04附录二动态库返回码表:(动态库只返回串口通讯上的错误)代码错误信息备注D1“LRC校验错误”几乎不会有此错误16“初始化COM错误”设备被占用或没找到D2“打开COM错误”线路不通时返回(常见)D3“接收COM错误”几乎不会有此错误D4“发送COM错误”几乎不会有此错误D6“操作类型错误”几乎不会有此错误D7“交易类型错误”几乎不会有此错误13“交易金额错误”几乎不会有此错误………………附录三其它部分返回码及信息代码返回信息含义00ApprovedOrCompletedSuccessfully承兑或交易成功01ReferToCardIssuer查发卡方02ReferToCardIssuer'sSpecialCondition查发卡方的特殊条件03InvalidMerchant无效商户04Pick-up没收卡05DoNotHonor不予承兑06Error出错07Pick-upCard,SpecialCondition特殊条件下没收卡09RequestInProgress请求正在处理中12InvalidTransaction无效交易13InvalidAmount无效金额14InvalidCardNumber(NoSuchNumber)无效卡号15NoSuchIssuer无此发卡方19Re-enterTransaction重新送入交易20InvalidResponse无效应答21NoActionTaken不作任何处理22SuspectedMalfunction怀疑操作有误23UnacceptableTransactionFee不可接受的交易费25UnableToLocateRecordOnFile未能找到文件上记录30FormatError格式错误31BankNotSupportedBySwitch交换中心不支持的银行33ExpiredCard过期的卡(没收卡)34SuspectedFraud有作弊嫌疑(没收卡)35CardAcceptorContactSecurity受卡方与安全保密部门联系(没收卡)36RestrictedCard受限制的卡(没收卡)37CardAcceptorCallAcquirerSecurity受卡方呼受理方安全保密部门(没收卡)38AllowablePINTriesExceeded超过允许的PIN试输入(没收卡)39NoCreditAccount无此信用卡帐户40RequestedFunctionNotSupported请求的功能尚不支持41LostCard挂失卡(没收卡)42NoUniversalAccount无此帐户代码返回信息含义43StolenCard,Pick-up被窃卡(没收卡)44NoInvestmentAccount无此投资帐户45-50ReservedForISOUseISO保留使用51NotSufficientFunds无足够的存款52NoChequingAccount无此支票帐户53NoSavingAccount无此储蓄卡帐户54ExpiredCard过期的卡55IncorrectPersonalIdentificationNumber不正确的PIN56NoCardRecord无此卡记录57TransactionNotPermittedToCardholder不允许持卡人进行的交易58TransactionNotPermittedToTerminal不允许终端进行的交易59SuspectedFraud有作弊嫌疑60CardAcceptorContactAcquirer受卡方与安全保密部门联系61ExceedsWithdrawalAmountLimit超出取款金额限制62RestrictedCard受限制的卡63SecurityViolation违反安全保密规定64OriginalAmountIncorrect原始金额不正确65ExceedsWithdrawalFrequencyLimit超出取款次数限制66CardAcceptorCallAcquirer'sSecurityDepartment受卡方呼受理方安全保密部门67HardCap