From: rui.yang Date: Wed, 18 Mar 2020 07:28:36 +0000 (+0800) Subject: 签约请求报文添加验证码参数; X-Git-Tag: 1.0.12^2~6 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=094abb416740ef3d128cc28eaca1ca99215700c6;p=epayment%2Ffood_payapi.git 签约请求报文添加验证码参数; 代扣请求报文添加消费场景参数 --- diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/citizencard_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/citizencard_service.kt index 4278bf08..ba072cc6 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/citizencard_service.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/citizencard_service.kt @@ -14,11 +14,12 @@ import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Component interface CitizencardPayService { - fun bindCard(bankcardno: String, username: String, idtype: String, idno: String, phone: String): DlpayResp + fun bindCard(bankcardno: String, username: String, idtype: String, idno: String, + phone: String): DlpayResp - fun signCard(bankcardno: String, username: String, idtype: String, idno: String, phone: String, transtype: String): DlpayResp + fun signCard(bankcardno: String, username: String, idtype: String, idno: String, phone: String, transtype: String,captcha:String): DlpayResp - fun cardPay(shopaccno: String, userid: String, accdate: String, amount: Int, refno: String): DlpayResp + fun cardPay(shopaccno: String, userid: String, accdate: String, amount: Int, scenario: String, refno: String): DlpayResp fun cardPayRefund(refno: String, accdate: String, orignRefno: String, amount: Int): DlpayResp diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/citizencard_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/citizencard_service_impl.kt index 0601599f..aa5c0ae1 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/citizencard_service_impl.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/citizencard_service_impl.kt @@ -101,7 +101,7 @@ class CitizencardPayServiceImpl : CitizencardPayService { } } - override fun signCard(bankcardno: String, username: String, idtype: String, idno: String, phone: String, transtype: String): DlpayResp { + override fun signCard(bankcardno: String, username: String, idtype: String, idno: String, phone: String, transtype: String,captcha:String): DlpayResp { var resp = DlpayResp() val config = sourceTypeService.getChargePaytypeConfig(TradeDict.PAYTYPE_CITIZEN_CARD, true) if (!checkCitizencardConfig(config, resp)) { @@ -135,6 +135,7 @@ class CitizencardPayServiceImpl : CitizencardPayService { params["idtype"] = idType.toString() params["idno"] = idno params["phone"] = phone + params["captcha"] = captcha params["sign_type"] = "MD5" val sign = MD5.encodeByMD5(StringUtil.createLinkString(StringUtil.paraFilter(params)) + config[YnrccUtil.YNRCC_SIGNKEY]!!.trim()) params["sign"] = sign @@ -161,7 +162,7 @@ class CitizencardPayServiceImpl : CitizencardPayService { } } - override fun cardPay(shopaccno: String, userid: String, accdate: String, amount: Int, refno: String): DlpayResp { + override fun cardPay(shopaccno: String, userid: String, accdate: String, amount: Int, scenario: String, refno: String): DlpayResp { var resp = DlpayResp() val config = sourceTypeService.getConsumePaytypeConfig(TradeDict.PAYTYPE_CITIZEN_CARD, shopaccno, false, false) if (!checkCitizencardConfig(config, resp)) { @@ -216,6 +217,7 @@ class CitizencardPayServiceImpl : CitizencardPayService { params["merchant_bankcardno"] = merchantBankcardno!! params["merchant_bankaccname"] = merchantBankaccname!! params["amount"] = amount.toString() + params["scenario"] = scenario params["description"] = "市民卡代扣消费" params["sign_type"] = "MD5" val sign = MD5.encodeByMD5(StringUtil.createLinkString(StringUtil.paraFilter(params)) + config[YnrccUtil.YNRCC_SIGNKEY]!!.trim()) diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt index 0f6f5d65..b977881e 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt @@ -550,7 +550,8 @@ class ApiV1 { ?: return JsonResult.error("卡片不存在,请重新绑定") //call sign api val person = userService.findOnePersonByUserid(card.userid) - var resp = citizencardPayService.signCard(card.cardno, person.name, person.idtype, person.idno, user.phone!!, YnrccUtil.TRANSTYPE_SIGNCARD) + val captcha = ""//此处为验证码,暂由此参数代替 + var resp = citizencardPayService.signCard(card.cardno, person.name, person.idtype, person.idno, user.phone!!, YnrccUtil.TRANSTYPE_SIGNCARD,captcha) if (resp.code != "0000") { return JsonResult.error(resp.message) } @@ -783,7 +784,8 @@ class ApiV1 { ?: return JsonResult.error("银行卡不存在,不能解除代扣协议") //call sign api val person = userService.findOnePersonByUserid(card.userid) - var resp = citizencardPayService.signCard(card.cardno, person.name, person.idtype, person.idno, user.phone!!, YnrccUtil.TRANSTYPE_UNSIGNCARD) + val captcha = ""//此处为验证码,暂由此参数代替 + var resp = citizencardPayService.signCard(card.cardno, person.name, person.idtype, person.idno, user.phone!!, YnrccUtil.TRANSTYPE_UNSIGNCARD,captcha) if (resp.code != "0000") { return JsonResult.error(resp.message) } diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/DlpayReq.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/DlpayReq.java index 7fae31ac..ed96db6e 100644 --- a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/DlpayReq.java +++ b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/DlpayReq.java @@ -35,6 +35,8 @@ public class DlpayReq { private String oriSn; //原应用系统唯一流水号 private String chkdate; //对账日期 + private String captcha; //签约验证码 + private String scenario;//消费场景 /** * 市民卡绑定请求XML @@ -49,9 +51,9 @@ public class DlpayReq { .append("").append(categorie).append("") .append("").append(sn).append("") .append("").append(bcNo).append("") - .append("").append(name).append("") + /* .append("").append(name).append("") .append("").append(idType).append("") - .append("").append(idNo).append("") + .append("").append(idNo).append("")*/ .append("").append(phone).append("") .append(""); return String.format("%08d", xml.toString().getBytes("GBK").length) + xml.toString(); @@ -75,7 +77,8 @@ public class DlpayReq { .append("").append(idNo).append("") .append("").append(phone).append("") .append("").append(transType).append("") - .append(""); + .append("").append(captcha).append("") + .append(""); return String.format("%08d", xml.toString().getBytes("GBK").length) + xml.toString(); } @@ -290,4 +293,20 @@ public class DlpayReq { public void setTranscode(String transcode) { this.transcode = transcode; } + + public String getCaptcha() { + return captcha; + } + + public void setCaptcha(String captcha) { + this.captcha = captcha; + } + + public String getScenario() { + return scenario; + } + + public void setScenario(String scenario) { + this.scenario = scenario; + } } diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java index 56e4d60f..d7dfcb4d 100644 --- a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java +++ b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java @@ -77,10 +77,12 @@ public class YnrccApiController { @FormParam("transtime") String transtime, @FormParam("categorie") String categorie, @FormParam("refno") String refno, @FormParam("bankcardno") String bankcardno, @FormParam("username") String username, @FormParam("idtype") String idtype, - @FormParam("idno") String idno, @FormParam("phone") String phone, + @FormParam("idno") String idno, + @FormParam("phone") String phone, @FormParam("sign_type") String sign_type, @FormParam("sign") String sign) { DlpayResp resp = new DlpayResp(); - if (!ynrccParamCheckService.checkBindCardParam(transcode, transdate, transtime, refno, bankcardno, username, idtype, idno, phone, categorie, sign_type, sign, resp)) { + if (!ynrccParamCheckService.checkBindCardParam(transcode, transdate, transtime, refno, bankcardno, username, idtype, idno, + phone, categorie, sign_type, sign, resp)) { logger.error(resp.errPrint()); return resp; } @@ -136,10 +138,11 @@ public class YnrccApiController { @FormParam("bankcardno") String bankcardno, @FormParam("username") String username, @FormParam("idtype") String idtype, @FormParam("idno") String idno, @FormParam("phone") String phone, + @FormParam("captcha")String captcha, @FormParam("sign_type") String sign_type, @FormParam("sign") String sign) { DlpayResp resp = new DlpayResp(); if (!ynrccParamCheckService.checkSignCardParam(transcode, transdate, transtime, refno, categorie, bankcardno, - username, idtype, idno, phone, transtype, sign_type, sign, resp)) { + username, idtype, idno, phone, captcha,transtype, sign_type, sign, resp)) { logger.error(resp.errPrint()); return resp; } @@ -156,6 +159,7 @@ public class YnrccApiController { params.put("idno", idno); params.put("phone", phone); params.put("transtype", transtype); + params.put("captcha",captcha); params.put("sign_type", sign_type); params.put("sign", sign); if (!checkYnrccSign(params, resp)) { @@ -175,6 +179,7 @@ public class YnrccApiController { req.setIdNo(idno); req.setPhone(phone); req.setTransType(transtype); + req.setCaptcha(captcha); return ynrccApiService.sendToYnrcc(DlpayUtil.OPTYPE_SIGNCARD, req); } catch (BussinessException be) { resp.setCode(ErrorCode.BUSSINESS_ERROR); @@ -199,11 +204,12 @@ public class YnrccApiController { @FormParam("merchant_bankcardno") String merchant_bankcardno, @FormParam("merchant_bankaccname") String merchant_bankaccname, @FormParam("amount") Integer amount, + @FormParam("scenario") String scenario, @FormParam("description") String description, @FormParam("sign_type") String sign_type, @FormParam("sign") String sign) { DlpayResp resp = new DlpayResp(); if (!ynrccParamCheckService.checkCardPayParam(transcode, transdate, transtime, refno, categorie, bankcardno, - username, idtype, idno, merchant_bankcardno, merchant_bankaccname, amount, description, sign_type, sign, resp)) { + username, idtype, idno, merchant_bankcardno, merchant_bankaccname, amount,scenario, description, sign_type, sign, resp)) { logger.error(resp.errPrint()); return resp; } @@ -216,11 +222,12 @@ public class YnrccApiController { params.put("categorie", categorie); params.put("bankcardno", bankcardno); params.put("username", username); - params.put("idtype", idtype); + //params.put("idtype", idtype); params.put("idno", idno); params.put("merchant_bankcardno", merchant_bankcardno); params.put("merchant_bankaccname", merchant_bankaccname); params.put("amount", String.valueOf(amount)); + params.put("scenario",scenario); params.put("description", description); params.put("sign_type", sign_type); params.put("sign", sign); @@ -242,6 +249,7 @@ public class YnrccApiController { req.setMerchantBcno(merchant_bankcardno); req.setMerchantName(merchant_bankaccname); req.setAmount(amount); + req.setScenario(scenario); req.setDescription(description); return ynrccApiService.sendToYnrcc(DlpayUtil.OPTYPE_CARDPAY, req); } catch (BussinessException be) { diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/YnrccParamCheckService.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/YnrccParamCheckService.java index 4eb674b2..9673aff1 100644 --- a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/YnrccParamCheckService.java +++ b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/YnrccParamCheckService.java @@ -12,10 +12,10 @@ public interface YnrccParamCheckService { boolean checkSign(Map param); boolean checkSignCardParam(String transcode, String transdate, String transtime, String refno, String categorie, String bankcardno, String username, - String idtype, String idno, String phone, String transtype, String sign_type, String sign, DlpayResp resp); + String idtype, String idno, String phone, String captcha,String transtype, String sign_type, String sign, DlpayResp resp); boolean checkCardPayParam(String transcode, String transdate, String transtime, String refno, String categorie, String bankcardno, String username, - String idtype, String idno, String merchant_bankcardno, String merchant_bankaccname, Integer amount, String description, + String idtype, String idno, String merchant_bankcardno, String merchant_bankaccname, Integer amount,String scenario, String description, String sign_type, String sign, DlpayResp resp); boolean checkPayRefundParam(String transcode, String transdate, String transtime, String refno, String refundRefno, Integer amount, String description, diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccParamCheckServiceImpl.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccParamCheckServiceImpl.java index 069bf8f6..bea60e86 100644 --- a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccParamCheckServiceImpl.java +++ b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccParamCheckServiceImpl.java @@ -58,7 +58,8 @@ public class YnrccParamCheckServiceImpl implements YnrccParamCheckService { } @Override - public boolean checkBindCardParam(String transcode, String transdate, String transtime, String refno, String bankcardno, String username, String idtype, String idno, String phone, String categorie, String sign_type, String sign, DlpayResp resp) { + public boolean checkBindCardParam(String transcode, String transdate, String transtime, String refno, String bankcardno, String username, String idtype, String idno, + String phone, String categorie, String sign_type, String sign, DlpayResp resp) { if (!checkYnrccBaseParam(transcode, transdate, transtime, refno, sign_type, sign, resp)) { return false; } @@ -120,8 +121,9 @@ public class YnrccParamCheckServiceImpl implements YnrccParamCheckService { @Override public boolean checkSignCardParam(String transcode, String transdate, String transtime, String refno, String categorie, String bankcardno, String username, - String idtype, String idno, String phone, String transtype, String sign_type, String sign, DlpayResp resp) { - if (!checkBindCardParam(transcode, transdate, transtime, refno, bankcardno, username, idtype, idno, phone, categorie, sign_type, sign, resp)) { + String idtype, String idno, String phone, String captcha,String transtype, String sign_type, String sign, DlpayResp resp) { + if (!checkBindCardParam(transcode, transdate, transtime, refno, bankcardno, username, idtype, idno, + phone, categorie, sign_type, sign, resp)) { return false; } if (StringUtil.isEmpty(transtype)) { @@ -129,12 +131,17 @@ public class YnrccParamCheckServiceImpl implements YnrccParamCheckService { resp.setMessage("请求参数错误[签约标志]"); return false; } + if (StringUtil.isEmpty(captcha)) { + resp.setCode(ErrorCode.REQ_PARAM_ERROR); + resp.setMessage("请求参数错误[验证码为空]"); + return false; + } return true; } @Override - public boolean checkCardPayParam(String transcode, String transdate, String transtime, String refno, String categorie, String bankcardno, String username, String idtype, String idno, String merchant_bankcardno, String merchant_bankaccname, Integer amount, String description, String sign_type, String sign, DlpayResp resp) { + public boolean checkCardPayParam(String transcode, String transdate, String transtime, String refno, String categorie, String bankcardno, String username, String idtype, String idno, String merchant_bankcardno, String merchant_bankaccname, Integer amount, String scenario,String description, String sign_type, String sign, DlpayResp resp) { if (!checkYnrccBaseParam(transcode, transdate, transtime, refno, sign_type, sign, resp)) { return false; } @@ -179,6 +186,11 @@ public class YnrccParamCheckServiceImpl implements YnrccParamCheckService { resp.setMessage("请求参数错误[交易金额为空]"); return false; } + if (null == scenario) { + resp.setCode(ErrorCode.REQ_PARAM_ERROR); + resp.setMessage("请求参数错误[交易场景为空]"); + return false; + } return true; }