}
}
+ 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