payapi调用新增的对账确认和口挂接口封装
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/agent/citizencard/YnrccUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/agent/citizencard/YnrccUtil.java
index e1cbc30..79daf31 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/agent/citizencard/YnrccUtil.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/agent/citizencard/YnrccUtil.java
@@ -14,6 +14,8 @@
public static final String BANKCARD_PAYREFUND_TRANSCODE = "BC5513";
public static final String BANKCARD_QUERYRESULT_TRANSCODE = "BC5514";
public static final String BANKCARD_CHKFILE_TRANSCODE = "BC5515";
+ public static final String BANKCARD_CHKMAKESURE_TRANSCODE = "BC5516";
+ public static final String BANKCARD_BANKCARDLOSS_TRANSCODE = "BC5517";
public static final String DLPAY_CATEGORIE = "C001"; //消费类别
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 b601151..526d447 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
@@ -27,6 +27,9 @@
fun getChkfilename(checkdate: String, merchantBankcardno: String?): DlpayResp
+ fun makeSureCheckResult(trxdate: String, transcnt: Int, transamt: Long): DlpayResp
+
+ fun bankCardLoss(bankcardno: String, username: String, idtype: String, idno: String): DlpayResp
}
@Component("citizenCardAgent")
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 aa5c0ae..bc1ecca 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
@@ -393,4 +393,113 @@
}
}
+ override fun makeSureCheckResult(trxdate: String, transcnt: Int, transamt: Long): DlpayResp {
+ var resp = DlpayResp()
+ val config = sourceTypeService.getChargePaytypeConfig(TradeDict.PAYTYPE_CITIZEN_CARD, true)
+ if (!checkCitizencardConfig(config, resp)) {
+ return resp
+ }
+
+ val systime = systemUtilService.sysdatetime
+ val refno = systemUtilService.refno
+ val params = hashMapOf<String, String>()
+ params["transcode"] = YnrccUtil.BANKCARD_CHKMAKESURE_TRANSCODE
+ params["transdate"] = systime.hostdate
+ params["transtime"] = systime.hosttime
+ params["refno"] = refno
+ params["stltrxdate"] = trxdate
+ params["stlamt"] = transamt.toString()
+ params["jnlcount"] = transcnt.toString()
+ params["sign_type"] = "MD5"
+ val sign = MD5.encodeByMD5(StringUtil.createLinkString(StringUtil.paraFilter(params)) + config[YnrccUtil.YNRCC_SIGNKEY]!!.trim())
+ params["sign"] = sign
+
+ val postData = MultivaluedMapImpl()
+ params.forEach { (t, u) -> postData.add(t, u) }
+
+ val url = config[YnrccUtil.YNRCC_ANGENT_URL]!!.trim() + "/checkmakesure"
+ logger.error("url=[$url], params=[" + Gson().toJson(params) + "]")
+ try {
+ val client = Client.create()
+ client.setConnectTimeout(YnrccUtil.AGENT_CONNECT_TIMEOUT * 1000)
+ client.setReadTimeout(YnrccUtil.AGENT_READ_TIMEOUT * 1000)
+ val respClient = client.resource(url).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).accept(MediaType.APPLICATION_JSON).post(ClientResponse::class.java, postData)
+ return if (200 == respClient.status) {
+ val jsonStr = respClient.getEntity(String::class.java)
+ logger.error("refno=[$refno],trxdate=[$trxdate], url=[$url], return=[$jsonStr]")
+ resp = Gson().fromJson(jsonStr, DlpayResp::class.java)
+ resp
+ } else {
+ resp.code = "99"
+ resp.message = "请求前置返回失败[httpStatus=$respClient.status]"
+ logger.error(resp.message)
+ resp
+ }
+ } catch (e: Exception) {
+ e.printStackTrace()
+ resp.code = YnrccUtil.CODE_EXCEPTION
+ resp.message = "请求前置抛出异常"
+ logger.error(resp.message)
+ return resp
+ }
+ }
+
+ override fun bankCardLoss(bankcardno: String, username: String, idtype: String, idno: String): DlpayResp {
+ var resp = DlpayResp()
+ val config = sourceTypeService.getChargePaytypeConfig(TradeDict.PAYTYPE_CITIZEN_CARD, true)
+ if (!checkCitizencardConfig(config, resp)) {
+ return resp
+ }
+ val idType = IDTypes.findByValue(idtype)
+ if (idType < 0) {
+ resp.code = YnrccUtil.PARAM_VALUE_ERROR
+ resp.message = "证件类型未识别[$idtype]"
+ logger.error(resp.message)
+ return resp
+ }
+
+ val systime = systemUtilService.sysdatetime
+ val refno = systemUtilService.refno
+ val params = hashMapOf<String, String>()
+ params["transcode"] = YnrccUtil.BANKCARD_BANKCARDLOSS_TRANSCODE
+ params["transdate"] = systime.hostdate
+ params["transtime"] = systime.hosttime
+ params["refno"] = refno
+ params["bankcardno"] = bankcardno
+ params["username"] = username
+ params["idtype"] = idType.toString()
+ params["idno"] = idno
+ params["sign_type"] = "MD5"
+ val sign = MD5.encodeByMD5(StringUtil.createLinkString(StringUtil.paraFilter(params)) + config[YnrccUtil.YNRCC_SIGNKEY]!!.trim())
+ params["sign"] = sign
+
+ val postData = MultivaluedMapImpl()
+ params.forEach { (t, u) -> postData.add(t, u) }
+
+ val url = config[YnrccUtil.YNRCC_ANGENT_URL]!!.trim() + "/bankcardloss"
+ logger.error("url=[$url], params=[" + Gson().toJson(params) + "]")
+ try {
+ val client = Client.create()
+ client.setConnectTimeout(YnrccUtil.AGENT_CONNECT_TIMEOUT * 1000)
+ client.setReadTimeout(YnrccUtil.AGENT_READ_TIMEOUT * 1000)
+ val respClient = client.resource(url).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).accept(MediaType.APPLICATION_JSON).post(ClientResponse::class.java, postData)
+ return if (200 == respClient.status) {
+ val jsonStr = respClient.getEntity(String::class.java)
+ logger.error("refno=[$refno],bankcardno=[$bankcardno], url=[$url], return=[$jsonStr]")
+ resp = Gson().fromJson(jsonStr, DlpayResp::class.java)
+ resp
+ } else {
+ resp.code = "99"
+ resp.message = "请求前置返回失败[httpStatus=$respClient.status]"
+ logger.error(resp.message)
+ resp
+ }
+ } catch (e: Exception) {
+ e.printStackTrace()
+ resp.code = YnrccUtil.CODE_EXCEPTION
+ resp.message = "请求前置抛出异常"
+ logger.error(resp.message)
+ return resp
+ }
+ }
}
\ No newline at end of file