@@ -82,17 +82,15 @@ public SimpleResult sendSms(String appId, String plat, String phone, String temp
8282 * @param ttl 失效时间(秒)
8383 * @param params
8484 */
85- public SimpleResult sendSmsCode (String appId , String plat , String phone , long ttl , BaasObject params ) {
86- //获取短信验证码对应模版
87- String templateId = appConfigService .getString (appId , AppConfigEnum .SMS_CODE_TEMPLATE_ID );
85+ public SimpleResult sendSmsCode (String appId , String plat , String templateId , String phone , long ttl , BaasObject params ) {
8886 if (StringUtils .isEmpty (templateId )) {
89- throw new SimpleError ( SimpleCode . SMS_CODE_TEMPLATE );
87+ templateId = getSmsCodeTemplateId ( appId );
9088 }
9189 //生成六位随机数字验证码
9290 String code = String .valueOf ((int ) ((Math .random () * 9 + 1 ) * 100000 ));
9391 //记录验证码
9492 ValueOperations <String , String > ops = redisTemplate .opsForValue ();
95- ops .set (getKey (appId , phone ), code , ttl , TimeUnit .SECONDS );
93+ ops .set (getKey (appId , templateId , phone ), code , ttl , TimeUnit .SECONDS );
9694 //发送短信
9795 if (params == null ) {
9896 params = new BaasObject ();
@@ -102,15 +100,19 @@ public SimpleResult sendSmsCode(String appId, String plat, String phone, long tt
102100 return sendSms (appId , plat , phone , templateId , params );
103101 }
104102
103+ public SimpleResult sendSmsCode (String appId , String plat , String phone , long ttl , BaasObject params ) {
104+ return sendSmsCode (appId , plat , getSmsCodeTemplateId (appId ), phone , ttl , params );
105+ }
106+
105107 /**
106108 * 验证手机验证码
107109 *
108110 * @param phone 电话号码
109111 * @param code 验证码
110112 */
111- public boolean verifySmsCode (String appId , String phone , String code ) {
113+ public boolean verifySmsCode (String appId , String templateId , String phone , String code ) {
112114 //获取已缓存的手机验证码
113- String key = getKey (appId , phone );
115+ String key = getKey (appId , templateId , phone );
114116 ValueOperations <String , String > ops = redisTemplate .opsForValue ();
115117 String rightCode = ops .get (key );
116118 if (StringUtils .isEmpty (rightCode )) {
@@ -134,6 +136,18 @@ public boolean verifySmsCode(String appId, String phone, String code) {
134136 }
135137 }
136138
139+ public boolean verifySmsCode (String appId , String phone , String code ) {
140+ return verifySmsCode (appId , getSmsCodeTemplateId (appId ), phone , code );
141+ }
142+
143+ private String getSmsCodeTemplateId (String appId ) {
144+ String templateId = appConfigService .getString (appId , AppConfigEnum .SMS_CODE_TEMPLATE_ID );
145+ if (StringUtils .isEmpty (templateId )) {
146+ throw new SimpleError (SimpleCode .SMS_CODE_TEMPLATE );
147+ }
148+ return templateId ;
149+ }
150+
137151 /**
138152 * 选择短信处理器
139153 */
@@ -151,8 +165,8 @@ private ISmsHandler getSmsHandler(String appId) {
151165 return handler ;
152166 }
153167
154- private String getKey (String appId , String phone ) {
155- return "App_" + appId + SMS_CODE_NAME + "_" + phone ;
168+ private String getKey (String appId , String templateId , String phone ) {
169+ return "App_" + appId + SMS_CODE_NAME + "_" + templateId + "_" + phone ;
156170 }
157171
158172}
0 commit comments