签约请求报文添加验证码参数;
代扣请求报文添加消费场景参数
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 4278bf0..ba072cc 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.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 0601599..aa5c0ae 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 @@
}
}
- 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 @@
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 @@
}
}
- 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 @@
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 0f6f5d6..b977881 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 @@
?: 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 @@
?: 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 7fae31a..ed96db6 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 @@
private String oriSn; //原应用系统唯一流水号
private String chkdate; //对账日期
+ private String captcha; //签约验证码
+ private String scenario;//消费场景
/**
* 市民卡绑定请求XML
@@ -49,9 +51,9 @@
.append("<CATEGORIE>").append(categorie).append("</CATEGORIE>")
.append("<SN>").append(sn).append("</SN>")
.append("<BC_NO>").append(bcNo).append("</BC_NO>")
- .append("<NAME>").append(name).append("</NAME>")
+ /* .append("<NAME>").append(name).append("</NAME>")
.append("<ID_TYPE>").append(idType).append("</ID_TYPE>")
- .append("<ID_NO>").append(idNo).append("</ID_NO>")
+ .append("<ID_NO>").append(idNo).append("</ID_NO>")*/
.append("<PHONE>").append(phone).append("</PHONE>")
.append("</root>");
return String.format("%08d", xml.toString().getBytes("GBK").length) + xml.toString();
@@ -75,7 +77,8 @@
.append("<ID_NO>").append(idNo).append("</ID_NO>")
.append("<PHONE>").append(phone).append("</PHONE>")
.append("<TRANS_TYPE>").append(transType).append("</TRANS_TYPE>")
- .append("</root>");
+ .append("<CAPTCHA>").append(captcha).append("<CAPTCHA>")
+ .append("</root>");
return String.format("%08d", xml.toString().getBytes("GBK").length) + xml.toString();
}
@@ -290,4 +293,20 @@
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 56e4d60..d7dfcb4 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 @@
@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 @@
@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 @@
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 @@
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 @@
@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 @@
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 @@
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 4eb674b..9673aff 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 @@
boolean checkSign(Map<String, String> 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 069bf8f..bea60e8 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 @@
}
@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 @@
@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 @@
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 @@
resp.setMessage("请求参数错误[交易金额为空]");
return false;
}
+ if (null == scenario) {
+ resp.setCode(ErrorCode.REQ_PARAM_ERROR);
+ resp.setMessage("请求参数错误[交易场景为空]");
+ return false;
+ }
return true;
}