1.快钱支付支持消费和预授权,且提供商户直连网关的接口开发方式,区别于人民币网关的仅仅支持消费方式。但是查询和退款是走的同一套商户直连网关的操作。
2.操作方式有消费,退货,预授权,预授权完成,撤销
3.通知方式不同于其他的支付,以同步通知为主,异步通知为辅。
4.数据参数说明:系统参考号(qn)和授权码(authCode),qn主要用于查询(非必传),退款,撤销,预授权完成等必传参数,authCode主要用于预授权完成的必传参数。
//代码片断 /**
===拿支付的trans_id和qn,来查询做预授权完成的结果,显然对“原来的”理解错误~!!!
经过测试:qn系统参考号不传送,也是可以查询出来的。(原来的是qn错误导致无法查询出来,qn特点是00开头~!) 理解是:相对支付预授权的时候返回的数据说的。查询的仍然是当前该笔款项的trans_id和qn,trans_type来定。 得出的优化结论是:针对线上trans_status查询非空验证的情况,一般该情况qn也为空,达不到查证的目的,可以将qn从查询条件中去掉,只根据trans_id来查证。 **/ if(transPay.getQn() == null || "".equals(transPay.getQn())){ //等于null或者等于空字符串,151203 xxx MQuery object = new MQuery(); //这个是查询的对象。 object.setExternalRefNumber(transPay.getTransId().toString()); //原来的支付ID //201506011655351333 object.setTxnType(InitTrans.TxnTypeToStr.get(transPay.getTransType())); //转成字符串。 // object.setRefNumber(transPay.getQn()); //去掉这个请求参数查询。经过测试发现非必填。 error = builder.PayTxnTypeMap("query_txn").getXmlToBill99(object, data); }
5.数据格式说明:同一笔支付和退款记录,如果存在授权码(有部分银行卡存在授权码为null的情况,无影响),特点是:支付和退款的authCode是相同的。
6.快钱的生产环境设置测试金额为1元(最低支付1元),低于1元无法支付。
6.可以根据交易id和交易type来查询该笔交易记录,但是返回的respMap中没有qn数据,但是可以从返回的字符串中截取来解析获得(authCode,快钱截取,如果不存值authCode的情况需要判断处理)。这也就是在使用人民币网关的时候,支付成功,需要去查证该交易记录的qn。
****** TxnMsgContent中解析,只有请求传入了该RefNumber,返回接口中才有。****** 撤销 respXml={errorMessage=Element[refNumber] is empty!, errorCode=B.MGW.0120, version=1.0} 退货 respXml={amount=1.00, transTime=20160420165952, txnType=VTX, responseTextMessage=EDC.无效的撤销交易, terminalId=01800480, version=1.0, externalRefNumber=9714461140612101, responseCode=OY, entryTime=20160420165947, merchantId=812310075120262, refNumber=001558263761, storableCardNo=0000000000, interactiveStatus=TR2} 001558143231 12位 respXml={TxnMsgContent=PUR18123100751202620180048020160420155549971446114061210032099462720160420155549000155814323100CU招商银行6225762548517929S, merchantId=812310075120262, txnType=PUR, terminalId=01800480, version=1.0, externalRefNumber=9714461140612100} i=118 s=S ss=00 消费: 001558218034 respXml={TxnMsgContent=PUR15008123100751202620180048020160420163519754605024061210075223874120160420163519000155821803400CU工商银行6225975582844135S, merchantId=812310075120262, txnType=PUR, terminalId=01800480, version=1.0, externalRefNumber=7546050240612100} i=121 s=S ss=00 预授权: 001558217080 respXml={TxnMsgContent=PRE213008123100751202620180048020160420163450590850024061120024970849020160420163451000155821708000CU广发银行6225556470363379S, merchantId=812310075120262, txnType=PRE, terminalId=01800480, version=1.0, externalRefNumber=5908500240611200} i=122 s=S ss=00 预授权完成 001558208038 respXml={TxnMsgContent=CFM1708123100751202620180048020160420163006859365814061150014158658820160420163007000155820803800CU建设银行5324581279093793S, merchantId=812310075120262, txnType=CFM, terminalId=01800480, version=1.0, externalRefNumber=8593658140611500} i=120 s=S ss=00 预授权撤销 001554586471 respXml={TxnMsgContent=VTX8008123100751202620180048020160420161752372614814061140020160420161752000155458647100CU招商银行4392268867761512S, merchantId=812310075120262, txnType=VTX, terminalId=01800480, version=1.0, externalRefNumber=3726148140611400} i=111 s=S ss=00 退货 001558185115 respXml={TxnMsgContent=RFD18123100751202620180048020160420161751437256611061270020160420161751000155818511500CU平安银行6221558211724345S, merchantId=812310075120262, txnType=RFD, terminalId=01800480, version=1.0, externalRefNumber=4372566110612700} i=109 s=S ss=00 PUR 1 812310075120262 01800480 20160420155549 9714461140612100 320994627 20160420155549 0 001558143231 00 CU 招商银行 6225762548 517929 S PRE 21300 812310075120262 01800480 20160420163450 5908500240611200 249708490 20160420163451 0 001558217080 00 CU 广发银行 6225556470 363379 S CFM 170 812310075120262 01800480 20160420163006 8593658140611500 141586588 20160420163007 0 001558208038 00 CU 建设银行 5324581279 093793 S VTX 800 812310075120262 01800480 20160420161752 3726148140611400 20160420161752 0 001554586471 00 CU 招商银行 4392268867 761512 S RFD 1 812310075120262 01800480 20160420161751 4372566110612700 20160420161751 0 001558185115 00 CU 平安银行 6221558211 724345 S PUR 1500 812310075120262 01800480 20160421134450 4579391240612100 699517869 20160421134450 0 001559354456 00 CU 广发银行 6258105820 S TxnMsgContent解析格式说明: txnType 交易类型 M txnStatus 交易状态 M amount 金额 M merchantId 商户号 M terminalId 终端号 M entryTime 商户端交易时间 M externalRefNumber 外部跟踪编号 ME customerId 客户号 O transTime 交易传输时间 M voidFlag 撤销标志 M refNumber 系统参考号 -- M responseCode 应答码 -- M responseTextMessage 应答码文本消息 -- MO2 cardOrg 卡组织编号 -- O issuer 发卡银行名称 -- O storableCardNo 缩略卡号 -- MO3 authorizationCode 授权码 -- MO authCode为NULL的情况:(考虑问题需要全面...) respXml={TxnMsgContent=PUR15008123100751202620180048020160421134450457939124061210069951786920160421134450000155935445600CU广发银行6258105820S, merchantId=812310075120262, txnType=PUR, terminalId=01800480, version=1.0, externalRefNumber=4579391240612100} i=115 s=S ss=00