--------模块------------------------------------------------bankperQuery_WJ---------------------------------------------------------------------------------------------------------------------

+++++类名++++++++++JiangXiBankProcessor.java++++++++++++++++



/**
* description: 去银行查询订单状态
* @param queryReq
* @return
*/
public Map<String, String> query(Map<String, String> queryReq) throws Exception {
MyLogger.info("----------江西查询前置---去银行查询订单状态---------");
Map<String, String> queryRes = new HashMap<String, String>();
try {
//组织查询数据
String bankId=queryReq.get("bankId");
String FUN_ID = "QRY_ORDER_STATE";
String SNID =queryReq.get("SNID");
String PAY_SNID=queryReq.get("PAY_SNID");
String TIME_STAMP = queryReq.get("TIME_STAMP");
String MER_ID=MsgUtil.getMessage(bankId+".mer.id");
String MER_PWD=MsgUtil.getMessage(bankId+".mer.pwd");
String URL=MsgUtil.getMessage(bankId+".url");
String Key_Path=MsgUtil.getMessage(bankId+".KEY_PATH");
PaySendValue payValue = new PaySendValue();
payValue.setFun_id(FUN_ID);
payValue.setSnid(SNID);
payValue.setPay_snid(PAY_SNID);
payValue.setTime_stamp(TIME_STAMP);
payValue.setMer_id(MER_ID);
payValue.setMer_pwd(MER_PWD);
payValue.setKeyPath(Key_Path);
payValue.setUrl(URL);
//调用银行接口执行查询并同步返回结果
MobilePayClient mo = new MobilePayClient();
PayReturnValue returnvalue = mo.excute(payValue);
MyLogger.info("---查询订单状态返回码(E00表示成功)---"+returnvalue.getErr_no()+"--状态说明---"+returnvalue.getNote());
//如果执行查询操作是成功的
if ("E00".equals(returnvalue.getErr_no())) {
MyLogger.info("------查询成功----- 组织订单状态返回---");
//下订单日期
queryRes.put(XmlData.BANKCHECKDATE, returnvalue.getPaydate());
//下订单时间
queryRes.put("ORDTIME", returnvalue.getOrdtime());
//消费金额 以分为单位
queryRes.put("ORDAMT", returnvalue.getOrdamt());
//订单状态 S:交易完成    支付成功
queryRes.put("ORDSTS", returnvalue.getOrdsts());
//交易金额
queryRes.put(XmlData.AMOUNT, returnvalue.getOrdamt());
if("S".equals(returnvalue.getOrdsts())){
MyLogger.info("--------查询的订单状态为:支付成功");
queryRes.putAll(RetMsgUtil.querySuccess());
queryRes.put(XmlData.PAYSTATE, String.valueOf(DataDict.PAYSTATE_1));
}else{
queryRes.put(XmlData.RETCODE,ConstEC.SUCCESS );
queryRes.put(XmlData.PAYSTATE,String.valueOf(DataDict.PAYSTATE_N1));
}
}else{
String note = "查询失败:错误码为" + returnvalue.getErr_no() + "错误描述:" + returnvalue.getNote();
queryRes.put(XmlData.PAYSTATE, String.valueOf(DataDict.PAYSTATE_N1));
queryRes.put(XmlData.RETMSG, note);
MyLogger.info(note);
}
} catch (Exception e) {
String retMsg = "银行查询时发生异常";
MyLogger.error(retMsg, e);
queryRes.putAll(RetMsgUtil.queryFail());
queryRes.put(XmlData.RETMSG, retMsg + e);
}
return queryRes;
}

+++++配置文件++++++++config\bank.properties++++++++++++++++++

S7910000.query.enabled=true
S7910000.collate.enabled=false
S7910000.BANKPROCESSOR=com.umpay.bankpreQuery.bank.JiangXiBankProcessor
S7910000.url=http://211.141.88.164:8080/GMPAY_WEB/servlet/GmpayAcessServlet
S7910000.mer.id=888001457340001
S7910000.mer.pwd=123456
S7910000.KEY_PATH=/usr/mpsp/netbank/bankpreSign_WJ/classes/cert/jiangxi/jx_ld_test.private

--------模块-------------------------------------------------------------------------bankperSign_WJ----------------------------------------------------------------------------------------------

+++类名+++++++JiangXiBankProcessor.java++++++++++++++++++++



public class JiangXiBankProcessor implements BankProcessor{
/**
* description: 对交易明文加密
* @param signReq
* @return signRes
*/
public Map<String, String> sign(Map<String, String> signReq) throws Exception {
Map<String, String> signRes = new HashMap<String, String>();
try {
//请求地址
String URL = signReq.get("BANK_PAYURL");
//商户号
String MER_ID = signReq.get("MER_ID");
//商户密码
String MER_PWD = signReq.get("MER_PWD");
//功能码
String FUN_ID = signReq.get("FUN_ID");
//交易流水
String SNID = signReq.get("SNID");
//支付时间
String TIME_STAMP = signReq.get("TIME_STAMP");
//私钥
String KEY_PATH =MsgUtil.getMessage(signReq.get(XmlData.BANKID)+".KEY_PATH");
//支付金额
String AMT = signReq.get("AMT");
//是否允许用户对该笔订单进行评论
String ALLOWNOTE = signReq.get("ALLOWNOTE");
//WEB SMS WAP WAP-PUSH IVR
String AUTHORIZEMODE = signReq.get("AUTHORIZEMODE");
//CNY:可提现金额进行支付   CMY:用不可提现金额支付
String CURRENCY = signReq.get("CURRENCY");
//有效期单位 0-年 1-月 2-日 3-小时
String PERIODUNIT = signReq.get("PERIODUNIT");
//有效期数量
String PERIOD = signReq.get("PERIOD");
//商品编号
String PRODUCTID = signReq.get("PRODUCTID");
//订购数量
String QUANTITY = signReq.get("QUANTITY");
//商品名称
String PRODUCT_NAME = signReq.get("PRODUCT_NAME");
//商品描述
String PRODUCT_DESC = signReq.get("PRODUCT_DESC");
//交易类型
String TXNTYP = signReq.get("TXNTYP");
//商户交易结果通知地址
String CALLBACKURL = signReq.get("CALLBACKURL");
PaySendValue payValue = new PaySendValue();
payValue.setUrl(URL);
payValue.setMer_id(MER_ID);
payValue.setMer_pwd(MER_PWD);
payValue.setFun_id(FUN_ID);
payValue.setSnid(SNID);
payValue.setTime_stamp(TIME_STAMP);
payValue.setKeyPath(KEY_PATH);
payValue.setAmt(AMT);
payValue.setAllownote(ALLOWNOTE);
payValue.setAuthorizemode(AUTHORIZEMODE);
payValue.setCurrency(CURRENCY);
payValue.setPeriodunit(PERIODUNIT);
payValue.setPeriod(PERIOD);
List<String[]> list = new ArrayList<String[]>();
list.add(new String[]{PRODUCTID, QUANTITY, PRODUCT_NAME, PRODUCT_DESC});
payValue.setProductinfo(list);
payValue.setProductid(PRODUCTID);
payValue.setTxntyp(TXNTYP);
payValue.setCallbackurl(CALLBACKURL);
MyLogger.info("*****江西 下单请求*****报文********");
MyLogger.info(payValue.getUrl());
MyLogger.info(payValue.getMer_id());
MyLogger.info(payValue.getMer_pwd());
MyLogger.info(payValue.getFun_id());
MyLogger.info(payValue.getSnid());
MyLogger.info(payValue.getTime_stamp());
MyLogger.info(payValue.getKeyPath());
MyLogger.info(payValue.getAmt());
MyLogger.info(payValue.getAllownote());
MyLogger.info(payValue.getAuthorizemode());
MyLogger.info(payValue.getCurrency());
MyLogger.info(payValue.getPeriodunit());
MyLogger.info(payValue.getPeriod());
MyLogger.info(payValue.getProductinfo().toString());
MyLogger.info(payValue.getProductid());
MyLogger.info(payValue.getTxntyp());
MyLogger.info(payValue.getCallbackurl());
MobilePayClient mo = new MobilePayClient();
PayReturnValue returnvalue = mo.excute(payValue);
MyLogger.info("省支付平台返回码,标识请求执行结果(E00表成功):" + returnvalue.getErr_no() + "描述:" + returnvalue.getNote());
if("E00".equals(returnvalue.getErr_no())){
String token = returnvalue.getToken();
String url = token.substring(token.indexOf("<hi:=>")+"<hi:=>".length(),token.indexOf("<hi:$>"));
token = token.substring(token.indexOf("<hi:$>")+"<hi:$>".length());
String method = token.substring(token.indexOf("<hi:=>")+"<hi:=>".length(),token.indexOf("<hi:$>"));
token = token.substring(token.indexOf("<hi:$>")+"<hi:$>".length());
String sessionId = token.substring(token.indexOf("<hi:=>")+"<hi:=>".length());
signRes.put("url", url);
signRes.put("method", method);
signRes.put("sessionId", sessionId);
signRes.put("retCode", ConstEC.SUCCESS);
signRes.put("retMsg", Constants.SIGN_SUCCESS);
}else
signRes.putAll(RetMsgUtil.signFail());
} catch (Exception e) {
signRes.putAll(RetMsgUtil.signFail());
String errMesg = "签名失败! [" + e.toString() + "]";
MyLogger.error(e);
signRes.put(XmlData.RETMSG, errMesg);
}
return signRes;
}

+++++配置文件++++++++config\bank.properties++++++++++++++++++
S7910000.query.enabled=true
S7910000.collate.enabled=false
S7910000.BANKPROCESSOR=com.umpay.bankpreQuery.bank.JiangXiBankProcessor
S7910000.url=http://211.141.88.164:8080/GMPAY_WEB/servlet/GmpayAcessServlet
S7910000.mer.id=888001457340001
S7910000.mer.pwd=123456
S7910000.KEY_PATH=/usr/mpsp/netbank/bankpreSign_WJ/classes/cert/jiangxi/jx_ld_test.private
 
 
---------------ebankpayservice_2.0-wj------------------
 
++++++++类++++++++com.umpay.ebankpay.domain.entity.bank.impl.JiangXiBank.java++++++++++++++++++++


public class JiangXiBank extends AbstractBank implements IPagePlaceOrderAsyncPay,IQuery,IAsyncBankResultParser {

 /**
* description 构造方法
* @param bankId
*/
public JiangXiBank(String bankId){
this.bankId = bankId;
}
//网关对银行的标识
private String bankId;
/**
*
*/
public String getBankId() {
return bankId;
}
/**
* description
* @param pay
* @param payReq
* @return BankPayRequestDatagram
*/
public BankPayRequestDatagram formBankPayRequest(Pay pay, InstPayRequest payReq) throws Exception {

  //组织银行数据
Map<String,String> bankData = new HashMap<String,String>();
//商户编号
String MER_ID = PropertiesUtil.getValue(bankId + ".MERID");
//功能号,标识交易
String FUN_ID = "USER_WEB_PAY";

  //交易流水:商户编号后8位+YYMMDD+6位序列;全局唯一。
String SNID = MER_ID.substring(MER_ID.length()-8)+pay.getPlatDate().substring(2)+SequenceUtil.getNextPaySeq(5)+DBPartitionMgr.getPayTableNoByPayDate(pay.getPlatDate());
//商户密码
String MER_PWD = PropertiesUtil.getValue(bankId + ".MER_PWD");
//交易日期时间:YYYYMMDDHH24MISS
String TIME_STAMP = pay.getPlatDate() + pay.getPlatTime();
//交易金额,分为单位
String AMT = String.valueOf(pay.getAmount());
//支付手机号码或别名(可选)
String MOBILE = pay.getMobileId();
//是否允许用户对该笔订单进行评论 0表示允许,默认 1表示不允许
String ALLOWNOTE = "1";
//WEB SMS WAP WAP-PUSH IVR 只能推荐一种
String AUTHORIZEMODE = "WEB";
//CNY(默认) CMY
String CURRENCY = "CNY";
//有效期单位:0-年 1-月 2-日 3-小时
String PERIODUNIT = "3";
//有效期数量
String PERIOD = "1";
//商品编号
String PRODUCTID = StringUtil.trim(payReq.getExpandMap().get(XmlData.PRODUCTID));
//订购数量
String QUANTITY = "1";
String PRODUCT_NAME = StringUtil.trim(payReq.getExpandMap().get(XmlData.PRODUCTNAME));
if(PRODUCT_NAME.length() > 60)
PRODUCT_NAME = PRODUCT_NAME.substring(0, 60);
//  productName=StringUtil.trim(productName);
String PRODUCT_DESC = PRODUCT_NAME;
//商品组信息
String PRODUCTINFOS = "";
//商品信息
List<String[]> list = new ArrayList<String[]>();
list.add(new String[]{PRODUCTID,QUANTITY,PRODUCT_NAME,PRODUCT_DESC});
List<String[]> PRODUCTINFO = list;
//交易类型:L:传统 B:B2C C:C2C S:直接支付
String TXNTYP = "S";
//商户交易结果通知地址
String CALLBACKURL = PropertiesUtil.getValue(bankId + ".BANK_MERURL");
//下单地址
String BANK_PAYURL = PropertiesUtil.getValue(bankId + ".BANK_PAYURL");
//组织签名请求
Map<String,String> signReq = new HashMap<String,String>();

  signReq.put("reqDate", pay.getPlatDate());
signReq.put("reqTime", pay.getPlatTime());
signReq.put("MER_ID", MER_ID);
signReq.put("MER_PWD", MER_PWD);
signReq.put("FUN_ID", FUN_ID);
signReq.put("SNID", SNID);
signReq.put("TIME_STAMP", TIME_STAMP);
signReq.put("AMT", AMT);
signReq.put("MOBILE", MOBILE);
signReq.put("ALLOWNOTE", ALLOWNOTE);
signReq.put("AUTHORIZEMODE", AUTHORIZEMODE);
signReq.put("CURRENCY", CURRENCY);
signReq.put("PERIODUNIT", PERIODUNIT);
signReq.put("PERIOD", PERIOD);
signReq.put("PRODUCTID", PRODUCTID);
signReq.put("QUANTITY", QUANTITY);
signReq.put("PRODUCT_NAME", PRODUCT_NAME);
signReq.put("PRODUCT_DESC", PRODUCT_DESC);
signReq.put("TXNTYP", TXNTYP);
signReq.put("CALLBACKURL", CALLBACKURL);
signReq.put("BANK_PAYURL",BANK_PAYURL);
Map<String,String> signRes = SignPreFacade.sign(bankId, signReq);
String url = signRes.get("url");
String sessionId = signRes.get("sessionId");
String method = signRes.get("method");
//提交给银行的数据
bankData.put("rpid", SNID);
bankData.put("reqDate", pay.getPlatDate());
bankData.put("reqTime", pay.getPlatTime());
bankData.put("mid", FormatUtil.ralign(MyLogger.getRpid(),14,'0'));
bankData.put("merId", MER_ID);
bankData.put("mcode", FUN_ID);
bankData.put("orderId", SNID);
bankData.put("orderDate", pay.getPlatDate());
bankData.put("time_stamp", TIME_STAMP);
bankData.put("amout", AMT);
bankData.put("mobile", MOBILE);
bankData.put("allowNote", ALLOWNOTE);
bankData.put("authorizeMode", AUTHORIZEMODE);
bankData.put("currency", CURRENCY);
bankData.put("periodUnit", PERIODUNIT);
bankData.put("period", PERIOD);
bankData.put("productinfos", PRODUCTINFOS);
bankData.put("productinfo", PRODUCTINFO.toString());
bankData.put("productId", PRODUCTID);
bankData.put("quantity", QUANTITY);
bankData.put("productName", PRODUCT_NAME);
bankData.put("productDesc", PRODUCT_DESC);
bankData.put("txntyp", TXNTYP);
bankData.put("callBack", CALLBACKURL);
bankData.put("bank_payurl",url);
bankData.put("method", method);
bankData.put("sessionId", sessionId);

  BankPayRequestDatagram datagram = new BankPayRequestDatagram(bankId, SNID);
datagram.setParams(bankData);
return datagram;
}

 public BankResult parseResult(ReqMessage bankResposne) throws Exception {
MyLogger.info(getBankId()+"++++++++++处理江西省平台前台支付结果返回开始++++++++++++");
BankResult bankResult=new BankResult();
String bankParas = bankResposne.get(XmlData.BANKPARAS);
//根据支付结果通知组织报文,再次调用查询前置查询支付结果
Map<String,String> queryReq= new HashMap<String,String>();

  //创建查询流水号
String SNID = getValue(bankParas,"SNID").substring(0,14)+SequenceUtil.getNextPaySeq(5)+getValue(bankParas,"SNID").substring(19,20);
//获取支付流水号
String OSNID= getValue(bankParas,"SNID");
//获得支付日期
String payDate=getValue(bankParas,"PAYDATE");
MyLogger.info("------------------前台 ------------验签--------------");
//组织验签请求参数
Map<String,String> designReq = new HashMap<String,String>();
designReq.put(XmlData.BANKPARAS, bankParas);
Map<String,String> designRes = SignPreFacade.design(getBankId(), designReq);
//组织查询数据
queryReq.put("bankId", getBankId());
queryReq.put("SNID", SNID);
queryReq.put("PAY_SNID", OSNID);
queryReq.put("TIME_STAMP", getValue(bankParas, "TIME_STAMP"));
//调用查询前置 查询订单状态 并返回结果
Map<String, String> bankpreRes= QryPreFacade.query(getBankId(), queryReq);

  if(ConstEC.SUCCESS.equals(bankpreRes.get(XmlData.RETCODE))
&&DataDict.PAYSTATE_1.toString().equals(bankpreRes.get(XmlData.PAYSTATE))){
bankResult.setPayState(DataDict.PAY_STATE_SUCCESS);
}
else
bankResult.setPayState(DataDict.PAY_STATE_FAIL);
MyLogger.info("----bankCheckDate--"+payDate);
if(StringUtil.isEmpty(payDate))
bankResult.setBankCheckDate(TimeUtil.date8());
else
bankResult.setBankCheckDate(payDate);
bankResult.setAmount(Long.parseLong(bankpreRes.get("ORDAMT").trim()));
bankResult.setPaySeq(OSNID);
bankResult.setBankSeq(SNID);
bankResult.setBankId(getBankId());

  MyLogger.info("++++++++++处理江西省平台前台支付结果返回结束++++++++++++");
return bankResult;
}

 public String getValue(String xml, String mark) throws Exception {

  SAXBuilder sb = new SAXBuilder();
Document doc = null;
doc = sb.build(new StringReader(xml));
Element packet = doc.getRootElement();
Element thisMark = packet.getChild(mark);
if (thisMark == null)
return null;
String value = null;
try {
value = thisMark.getValue();
return value;
} catch (Exception e) {
MyLogger.error(e);
return null;
}
}

}

++++++++++类+++++++++++++++com.umpay.ebankpay.domain.entity.bank.impl.ServerJiangXiBank.java+++++++++++++++
public class ServerJiangXiBank extends JiangXiBank implements IResponseToBankResult {
public ServerJiangXiBank(String bankId) {
super(bankId);
}
public String getBankId() {
return "S7910000";
}
//后台通知结果响应
public String response(Pay pay) throws Exception {
//原型 <?xml version="1.0" encoding="UTF-8"?><MPAY><MER_ID>888001457340001</MER_ID><ERR_NO>E00</ERR_NO><NOTE>成功</NOTE></MPAY>
return ("<?xml version=\"1.0\" encoding=\"UTF-8\"?><MPAY><MER_ID>"+PropertiesUtil.getValue(getBankId() + ".MERID")+"</MER_ID><ERR_NO>E00</ERR_NO><NOTE>success</NOTE></MPAY>");
}

 @SuppressWarnings("unused")
public BankResult parseResult(ReqMessage bankResposne) throws Exception {
MyLogger.info("-----------处理江西省平台后台支付结果返回开始-----------");
BankResult bankResult=new BankResult();
String bankParas = bankResposne.get(XmlData.BANKPARAS);
//根据支付结果通知组织报文,再次调用查询前置查询支付结果
Map<String,String> queryReq= new HashMap<String,String>();

  //创建查询流水号
String SNID = getValue(bankParas,"SNID").substring(0,14)+SequenceUtil.getNextPaySeq(5)+getValue(bankParas,"SNID").substring(19,20);
//获取支付流水号
String OSNID= getValue(bankParas,"SNID");
//支付日期,对账使用
String payDate=getValue(bankParas,"PAYDATE");
//组织查询数据
queryReq.put("bankId", getBankId());
queryReq.put("SNID", SNID);
queryReq.put("PAY_SNID", OSNID);
queryReq.put("TIME_STAMP", getValue(bankParas, "TIME_STAMP"));
//调用查询前置 查询订单状态 并返回结果
Map<String, String> bankpreRes= QryPreFacade.query(getBankId(), queryReq);
  if(ConstEC.SUCCESS.equals(bankpreRes.get(XmlData.RETCODE))
&&DataDict.PAYSTATE_1.toString().equals(bankpreRes.get(XmlData.PAYSTATE))){
bankResult.setPayState(DataDict.PAY_STATE_SUCCESS);
}
else
bankResult.setPayState(DataDict.PAY_STATE_FAIL);
MyLogger.info("----bankCheckDate--"+payDate);
if(StringUtil.isEmpty(payDate))
bankResult.setBankCheckDate(TimeUtil.date8());
else
bankResult.setBankCheckDate(payDate);
bankResult.setAmount(Long.parseLong(bankpreRes.get("ORDAMT").trim()));
bankResult.setPaySeq(OSNID);
bankResult.setBankSeq(SNID);
bankResult.setBankId(getBankId());
MyLogger.info("------------处理省平台后台支付结果完成-----------");

  return bankResult;
}

}

++++++类+++++++com.umpay.ebankpay.domain.service.QryPreFacade.java+++++++++++++

 

/**
*  将请求送往银行前置查询
*/
public static Map<String,String> query(String bankId, Map<String,String> bankReq) throws Exception {
Map<String, String> bankpreReq = new HashMap<String,String>();
bankpreReq.put(XmlData.RPID, MyLogger.getRpid());
bankpreReq.put(XmlData.BANKID, bankId);
bankpreReq.put(XmlData.FUNCODE, "QUERY");
bankpreReq.putAll(bankReq);
MyLogger.info(bankId+"去查询前置请求参数:" + bankpreReq);
bankpreReq = base64Encode(bankpreReq);
Request request = new Request();
request.putMap(bankpreReq);
String destUserId = PropertiesUtil.getValue(bankId + ".bankpre.query.userId");
if(StringUtil.isEmpty(destUserId))
destUserId = PropertiesUtil.getValue("default.bankpre.userId");
Response res =ComclientUtil.getClient().request(request, destUserId);
Map<String, String> bankpreRes = res.getMap();
bankpreRes = base64Decode(bankpreRes);
MyLogger.info(bankId+"查询前置订单状态返回:" + bankpreRes);
return bankpreRes;

   }
+++++++类++++com.umpay.ebankpay.domain.factory.BankFactory.java+++++++(注:红色字体为添加内容)

public static IAsyncBankResultParser createAsyncBankResultParser(ReqMessage req) throws Exception{
String bankId = req.get(XmlData.BANKID);
String bankClassName = PropertiesUtil.getValue(bankId + ".BANKPROCESSOR");
try {
Class cls = Class.forName(bankClassName);
//如果是省平台,需要判断是后台通知还是前台通知,前台通知创建CMPAYBank处理,后台通知创建ServerCMPAYBank处理
if(cls == CMPAYBank.class){
if(XmlData.BCK.equals(req.get(XmlData.FBFLAG)))
cls = ServerCMPAYBank.class;
}
//如果是山东乐付,需要判断是后台通知还是前台通知,前台通知创建SDLEFUBank处理,后台通知创建ServerSDLEFUBank处理
if(cls == SDLEFUBank.class){
if(XmlData.BCK.equals(req.get(XmlData.FBFLAG)))
cls = ServerSDLEFUBank.class;
}
  //如果是江西省平台,需要判断是后台通知还是前台通知,前台通知创建JiangXiBank处理,后台通知创建ServerJiangXiBank处理
if(cls == JiangXiBank.class){
if(XmlData.BCK.equals(req.get(XmlData.FBFLAG)))
cls=ServerJiangXiBank.class;
}

 

++++++配置文件+++++++bank.properties.fortest+++++++++++

#jiangxi
S7910000.QUERY_ENABLED=true
S7910000.MER_PWD=123456
S7910000.BANKPROCESSOR=com.umpay.ebankpay.domain.entity.bank.impl.JiangXiBank
S7910000.MERID=888001457340001
S7910000.BANK_PAYURL=http\://211.141.88.164:8080/GMPAY_WEB/servlet/GmpayAcessServlet
S7910000.BANK_MERURL=http\://219.143.210.70/sbankpay/recvsptjxfwd.htm

 

+++++++配置文件++++++config.properties.fortest++++

 

S7910000.bankpre.query.userId=1200

 

---------------------------------------------------ebankpayweb--------------------------------------------------------------
+++++配置文件+++++++bank.properties+++++++++
#jiangXi
S7910000.fwd.result=merchantId,payNo,returnCode,message,signType,type,version,amount,amtItem,bankAbbr,mobile,orderId,payDate,accountDate,reserved1,reserved2,status,orderDate,fee,serverCert,hmac
S7910000.bck.result=MER_ID,FUN_ID,SNID,TIME_STAMP,ORDERDATE,PAYDATE,OSNID,STATUS,REMARK
++++配置文件++++++++url-mapping.xml++++++++
<!--江西-->
<prop key="/recvsptjxfwd.htm">recvSptJiangXiFwdController</prop>
<prop key="/recvsptjxbck.htm">recvSptJiangXiBckController</prop>
++++++配置文件+++++++++core.xml++++++++++++
 <!-- 江西省平台 前台结果通知 -->
<bean id="recvSptJiangXiFwdController" class="com.umpay.ebankpay.controller.RecvBankResultController">
<property name="commonBean" ref="commonBean" />
<property name="recvBankResultBean" ref="recvBankResultBean"/>
<property name="bankId">
<value>S7910000</value>
</property>
<property name="fbFlag">
<value>fwd</value>
</property>
</bean>
<!-- 江西省平台 后台结果通知-->
<bean id="recvSptJiangXiBckController" class="com.umpay.ebankpay.controller.RecvBankResultController">
<property name="commonBean" ref="commonBean" />
<property name="recvBankResultBean" ref="recvBankResultBean"/>
<property name="bankId">
<value>S7910000</value>
</property>
<property name="fbFlag">
<value>bck</value>
</property>
</bean>
 
-----------------------------------------------------PayGateloseNew_WJ-----------------------------------------------------------
+++++++quartz_jobs.xml+++++
  <!--江西省平台开始-->
<!--掉单查询job-->
<job>
<job-detail>
<name>j1</name>
<group>S7910000</group>
<description>query lose orders</description>
<job-class>com.umpay.paygatequerylose.job.QueryLoseOrdersJob</job-class>
<volatility>false</volatility>
<durability>false</durability>
<recover>false</recover>
<job-data-map allows-transient-data="true">
<entry>
<key>bankId</key>
<value>S7910000</value>
</entry>
</job-data-map>
</job-detail>
<trigger>
<cron>
<name>t1</name>
<group>S7910000</group>
<description>query lose orders</description>
<job-name>j1</job-name>
<job-group>S7910000</job-group>
<cron-expression>14 * * ? * *</cron-expression>
</cron>
</trigger>
</job>
<!--监控job-->
<job>
<job-detail>
<name>j2</name>
<group>S7910000</group>
<description>monitor the running of process</description>
<job-class>com.umpay.paygatequerylose.job.MonitorJob</job-class>
<volatility>false</volatility>
<durability>false</durability>
<recover>false</recover>
<job-data-map allows-transient-data="true">
<entry>
<key>bankId</key>
<value>S7910000</value>
</entry>
</job-data-map>
</job-detail>
<trigger>
<cron>
<name>t2</name>
<group>S7910000</group>
<description>monitor the running of process</description>
<job-name>j2</job-name>
<job-group>S7910000</job-group>
<cron-expression>16 0/2 * ? * *</cron-expression>
</cron>
</trigger>
</job>
<!---江西省平台结束-->


												

JiangxiBank相关推荐

最新文章

  1. Redis 限流的 3 种方式
  2. Centos7.6下安装Python3.7
  3. ABAP formula
  4. Javascript实现的左右滑动菜单
  5. odoo的 CRM系统为何如此受欢迎
  6. 软硬负载之间的对比及优缺点
  7. 牛逼!在IDEA里搞Spring Boot Mybatis反向工程,太爽咯~
  8. javaweb JAVA JSP球鞋销售系统购物系统ssm购物系统购物商城系统源码(ssm电子商务系统)
  9. spring boot 设置启动时初始化DispatcherServlet
  10. ubuntu 命令行 ocr 双层pdf OCRmyPDF
  11. PPT(office365)之背景图片、矢量图标、颜色搭配使用心得
  12. View 5应用之二:瘦客户机上的虚拟桌面
  13. 简单人物画像_简易人物画像作品
  14. git fetch 理解
  15. 3DsMAX期末紧急复习
  16. 2022年,人工智能和数据发展呈现哪五大趋势?
  17. 正在保存“index.vue”: 从 “‘Vetur‘, ‘ESLint‘“ (configure)中获取代码操作。
  18. 2020中国高校薪资排行出炉!来看看你们学校排名吧~
  19. java神奇蜘蛛侠攻略_神奇蜘蛛侠攻略带领新手快速入门
  20. [生而为人-思考] 读《网易一千零一夜》笔记

热门文章

  1. 未能加载或程序集“XXXX,Version=0.0.0.0,Culter=neutral,PublicKeyToken=null”或它的某一个依赖项。试图加载格式不正确的程序。...
  2. ts(TypeScript)定义服务器返回数据类型
  3. Struts2动作类:Action
  4. direct do造句 sb to_realize sb to do还是doing
  5. Wikibon 2018年云市场和2019趋势报告:云移向数据
  6. HDU 4411 Arrest 费用流
  7. 易经读书笔记15地山谦
  8. 怎样恢复计算机桌面,电脑桌面空白怎么恢复_怎样恢复电脑桌面图标
  9. 1977-2021 高考四十四年,哪一张照片是属于你的记忆(珍贵!)
  10. EMIS系统理论及简单理解(后续持续添加)