短信对接
diff --git a/payapi/build.gradle b/payapi/build.gradle
index 3e5d865..f87ce15 100644
--- a/payapi/build.gradle
+++ b/payapi/build.gradle
@@ -86,7 +86,7 @@
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 0000000..37ff259
--- /dev/null
+++ b/payapi/libs/sms.jar
Binary files 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 09af455..3d7471c 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.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.RestController
import org.springframework.web.bind.annotation.RequestParam
import java.time.Duration
-import java.util.Calendar
+import java.util.*
@RestController
@@ -88,10 +90,12 @@
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 @@
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 @@
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 6b28b01..5e1ad77 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 @@
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 e7dee86..87ef47b 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 @@
@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 @@
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