From: qiaowei Date: Mon, 29 Jul 2019 02:07:11 +0000 (+0800) Subject: 短信对接 X-Git-Tag: 1.0.1^2~64 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=249b37beeceb76794f70595c510a4b9fe27b6b39;p=epayment%2Ffood_payapi.git 短信对接 --- diff --git a/payapi/build.gradle b/payapi/build.gradle index 3e5d865d..f87ce155 100644 --- a/payapi/build.gradle +++ b/payapi/build.gradle @@ -86,7 +86,7 @@ dependencies { implementation group: 'javax.servlet', name: 'jstl', version: '1.2' implementation group: 'taglibs', name: 'standard', version: '1.1.2' implementation group: 'commons-codec', name: 'commons-codec', version: '1.6' -// implementation files('libs/ojdbc6.jar') + implementation files('libs/sms.jar') implementation 'commons-dbcp:commons-dbcp:1.4' implementation project(':payapi-common') diff --git a/payapi/libs/sms.jar b/payapi/libs/sms.jar new file mode 100755 index 00000000..37ff2599 Binary files /dev/null and b/payapi/libs/sms.jar differ 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 09af4554..3d7471c7 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt @@ -1,5 +1,6 @@ package com.supwisdom.dlpay.mobile +import com.mascloud.sdkclient.Client import com.supwisdom.dlpay.agent.citizencard.YnrccUtil import com.supwisdom.dlpay.agent.service.CitizencardPayService import com.supwisdom.dlpay.api.bean.JsonResult @@ -11,6 +12,7 @@ import com.supwisdom.dlpay.framework.domain.JwtRedis import com.supwisdom.dlpay.framework.redisrepo.ApiJwtRepository import com.supwisdom.dlpay.framework.service.SystemUtilService import com.supwisdom.dlpay.framework.util.* +import com.supwisdom.dlpay.framework.util.Dictionary import com.supwisdom.dlpay.mobile.domain.TBMobileUser import com.supwisdom.dlpay.mobile.service.MobileApiService import com.supwisdom.dlpay.system.service.DictionaryProxy @@ -26,7 +28,7 @@ import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController import org.springframework.web.bind.annotation.RequestParam import java.time.Duration -import java.util.Calendar +import java.util.* @RestController @@ -88,10 +90,12 @@ class ApiInit { val temp = redisTemplate.opsForValue().get(phone) if (temp.isNullOrEmpty()) { val code = RandomUtils.randomNumber(6) - System.out.println(code) + val rs = mobileApiService.sendSms(phone,code) + if("0"!=rs.retcode){ + return JsonResult.error(rs.retmsg) + } redisTemplate.opsForValue().set(phone, code, Duration.ofMinutes(5)) } - //TODO call send code sdk return JsonResult.ok("验证码已发送") } @@ -256,10 +260,12 @@ class ApiV1 { val temp = redisTemplate.opsForValue().get(user.phone) if (temp.isNullOrEmpty()) { val code = RandomUtils.randomNumber(6) - System.out.println(code) + val rs = mobileApiService.sendSms(user.phone,code) + if("0"!=rs.retcode){ + return JsonResult.error(rs.retmsg) + } redisTemplate.opsForValue().set(user.phone, code, Duration.ofMinutes(5)) } - //TODO call send code sdk return JsonResult.ok("验证码已发送") } @@ -664,7 +670,7 @@ class ApiV1 { val p = SecurityContextHolder.getContext().authentication mobileApiService.findUserById(p.name) ?: return JsonResult.error("用户不存在,请注册") - //TODO cardlost + //TODO qrcode return JsonResult.ok("ok").put("qrcode",p.name)!! } diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileApiService.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileApiService.kt index 6b28b01b..5e1ad771 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileApiService.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/MobileApiService.kt @@ -1,5 +1,6 @@ package com.supwisdom.dlpay.mobile.service +import com.supwisdom.dlpay.api.bean.BaseResp import com.supwisdom.dlpay.api.domain.TCard import com.supwisdom.dlpay.mobile.domain.TBMobileUser import com.supwisdom.dlpay.mobile.domain.TBPages @@ -18,4 +19,6 @@ interface MobileApiService { fun findCardByUserid(userid :String) :TCard? fun saveCard(card:TCard):TCard + + fun sendSms(phone:String,code:String):BaseResp } \ No newline at end of file diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileApiServiceImpl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileApiServiceImpl.kt index e7dee860..87ef47b5 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileApiServiceImpl.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/service/impl/MobileApiServiceImpl.kt @@ -1,15 +1,20 @@ package com.supwisdom.dlpay.mobile.service.impl +import com.mascloud.sdkclient.Client +import com.supwisdom.dlpay.api.bean.BaseResp import com.supwisdom.dlpay.api.dao.CardDao import com.supwisdom.dlpay.api.domain.TCard +import com.supwisdom.dlpay.framework.service.SystemUtilService import com.supwisdom.dlpay.mobile.dao.MobileUserDao import com.supwisdom.dlpay.mobile.dao.PagesDao import com.supwisdom.dlpay.mobile.domain.TBMobileUser import com.supwisdom.dlpay.mobile.domain.TBPages import com.supwisdom.dlpay.mobile.service.MobileApiService import com.supwisdom.dlpay.util.ConstantUtil +import mu.KotlinLogging import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service +import java.util.* @Service class MobileApiServiceImpl : MobileApiService { @@ -22,6 +27,11 @@ class MobileApiServiceImpl : MobileApiService { @Autowired lateinit var pagesDao: PagesDao + @Autowired + lateinit var systemUtilService: SystemUtilService + + val logger = KotlinLogging.logger { } + override fun saveUser(user: TBMobileUser): TBMobileUser { return mobileUserDao.save(user) } @@ -53,4 +63,86 @@ class MobileApiServiceImpl : MobileApiService { override fun saveCard(card: TCard): TCard { return cardDao.save(card) } + + override fun sendSms(phone:String,code: String): BaseResp { + var resp = BaseResp() + var url = systemUtilService.getBusinessValue("sms.url") + if(url.isNullOrEmpty()){ + resp.retcode = "1" + resp.retmsg="短信业务参数未配置" + logger.error { "短信参数:sms.url 未在业务表中配置" } + return resp + } + var account = systemUtilService.getBusinessValue("sms.account") + if(account.isNullOrEmpty()){ + resp.retcode = "1" + resp.retmsg="短信业务参数未配置" + logger.error { "短信参数:sms.account 未在业务表中配置" } + return resp + } + var pwd = systemUtilService.getBusinessValue("sms.pwd") + if(pwd.isNullOrEmpty()){ + resp.retcode = "1" + resp.retmsg="短信业务参数未配置" + logger.error { "短信参数:sms.pwd 未在业务表中配置" } + return resp + } + var ecname = systemUtilService.getBusinessValue("sms.ecname") + if(ecname.isNullOrEmpty()){ + resp.retcode = "1" + resp.retmsg="短信业务参数未配置" + logger.error { "短信参数:sms.ecname 未在业务表中配置" } + return resp + } + var addserial = systemUtilService.getBusinessValue("sms.addserial") + if(pwd.isNullOrEmpty()){ + resp.retcode = "1" + resp.retmsg="短信业务参数未配置" + logger.error { "短信参数:sms.addserial 未在业务表中配置" } + return resp + } + var sign = systemUtilService.getBusinessValue("sms.sign") + if(sign.isNullOrEmpty()){ + resp.retcode = "1" + resp.retmsg="短信业务参数未配置" + logger.error { "短信参数:sms.sign 未在业务表中配置" } + return resp + } + var tempid = systemUtilService.getBusinessValue("sms.tempid") + if(tempid.isNullOrEmpty()){ + resp.retcode = "1" + resp.retmsg="短信业务参数未配置" + logger.error { "短信参数:sms.tempid 未在业务表中配置" } + return resp + } + var priority = systemUtilService.getBusinessValue("sms.priority") + if(priority.isNullOrEmpty()){ + priority="1" + } + var client = Client.getInstance() + // 正式环境IP,登录验证URL,用户名,密码,集团客户名称 + var ret = client.login(url, account, pwd,ecname) + if(!ret){ + logger.error { "无法登陆短信平台,身份验证失" } + resp.retcode = "1" + resp.retmsg="无法登陆短信平台" + return resp + } + var sendResult = client.sendTSMS (arrayOf(phone), + tempid, arrayOf(code),addserial, priority.toInt(),sign, UUID.randomUUID().toString()) + System.out.println("推送结果: $sendResult") + return if(sendResult==1||sendResult==110){ + resp.retcode = "0" + resp.retmsg="成功" + resp + }else if(sendResult==104){ + resp.retcode = "1" + resp.retmsg="手机号错误" + resp + }else{ + resp.retcode = "1" + resp.retmsg="短信发送失败,请稍后再试" + resp + } + } } \ No newline at end of file