快钱支付接入注意点

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

 

posted @ 2016-04-24 11:45  全新时代-小小程序员大梦想  阅读(1287)  评论(0编辑  收藏  举报