From: sijun.li Date: Wed, 30 Sep 2020 14:31:29 +0000 (+0800) Subject: 保留原始生成二维码接口 X-Git-Tag: 1.0.27^2~2 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=5b039d19400b428a598faedfeebbdfc170f105a6;p=epayment%2Ffood_payapi.git 保留原始生成二维码接口 --- diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/qrcode_srvice_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/qrcode_srvice_impl.kt index 31da5df8..b1954226 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/qrcode_srvice_impl.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/qrcode_srvice_impl.kt @@ -31,6 +31,42 @@ class QRCodeServiceImpl:QRCodeService{ val logger = KotlinLogging.logger { } + override fun encodeCode(uid:String): ApiResponse { + var resp = ApiResponse() + val rootkey = systemUtilService.getBusinessValue("aes.cfb.rootkey") + val iv = systemUtilService.getBusinessValue("aes.cfb.iv") + if (rootkey.isNullOrEmpty()||iv.isNullOrEmpty()) { + resp.retcode = 1 + resp.retmsg = "秘钥未配置" + return resp + } + val muser = mobileApiService.findUserById(uid) + if(muser==null||TradeDict.STATUS_NORMAL!=muser.status){ + resp.retcode = 1 + resp.retmsg = "用户不存在或状态异常" + return resp + } + if(muser.userid.isNullOrEmpty()){ + resp.retcode = 1 + resp.retmsg = "用户未绑定身份" + return resp + } + val totp = QrCodeTotpUtil.generateTOTP(muser.secertkey) + val rowdata = QrcodeRawData() + rowdata.userid = muser.userid + rowdata.setTotp(totp) + val orgData = Gson().toJson(rowdata) + val publicKey = RSAKeysGenerate.getPublicKey(muser.rsapublic) + val encdata = org.apache.commons.codec.binary.Base64.encodeBase64String(RSAKeysGenerate.encryptbyte(publicKey, orgData)) + val qrcode = AesUtil.encryptCFB("$uid:$encdata", rootkey, iv, "AES/CFB/NoPadding") + + val key = MD5.encodeByMD5ToURLSafeBase64(qrcode) + redisTemplate.opsForValue().set(key,qrcode, Duration.ofSeconds(20)) + resp.retcode = 0 + resp.retmsg = key + return resp + } + override fun encodeCode(param: QrcodeParam): ApiResponse { var resp = ApiResponse() val uid = param.uid diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/qrcode_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/qrcode_service.kt index b5facd87..d8b21ce8 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/qrcode_service.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/qrcode_service.kt @@ -5,6 +5,7 @@ import com.supwisdom.dlpay.api.bean.DoorQrcodeResponse import com.supwisdom.dlpay.api.bean.QrcodeParam interface QRCodeService { + fun encodeCode(uid: String): ApiResponse fun encodeCode(param: QrcodeParam): ApiResponse fun decodeCode(qrcode: String): DoorQrcodeResponse } \ No newline at end of file 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 417e852d..299fd7fb 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt @@ -857,18 +857,18 @@ class ApiV1 { * * 二维码在线生成 * */ -// @RequestMapping("/qrcode") -// fun qrcode(): JsonResult { -// val p = SecurityContextHolder.getContext().authentication -// val user = mobileApiService.findUserById(p.name) -// ?: return JsonResult.error("用户不存在,请注册") -// val resp = qrcodeService.encodeCode(user.uid) -// return if(resp.retcode==0){ -// JsonResult.ok("ok").put("qrcode", resp.retmsg)!! -// }else{ -// JsonResult.error(resp.retmsg) -// } -// } + @RequestMapping("/qrcode") + fun qrcode(): JsonResult { + val p = SecurityContextHolder.getContext().authentication + val user = mobileApiService.findUserById(p.name) + ?: return JsonResult.error("用户不存在,请注册") + val resp = qrcodeService.encodeCode(user.uid) + return if(resp.retcode==0){ + JsonResult.ok("ok").put("qrcode", resp.retmsg)!! + }else{ + JsonResult.error(resp.retmsg) + } + } /** *