zoukankan      html  css  js  c++  java
  • 快钱支付接入注意点

    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
  • 相关阅读:
    docker 安装redis监控redis-stat
    maven 项目依赖打包 提示 package com.。。。。。 does not exist
    docker 建立跨主机网络
    docker-compose 安装mongodb集群==多台服务器
    docker 安装mongodb集群==多台服务器
    博客将近一年半没有更新了
    elasticsearch 使用同义词
    《SpringBoot第一篇:HelloWorld启蒙》
    go学习路线资料
    docker和k8s的概念-IaaS、PaaS、SaaS 的区别
  • 原文地址:https://www.cnblogs.com/simpledev/p/5426646.html
Copyright © 2011-2022 走看看