| | |
| | | import org.dromara.common.sms.config.properties.SmsProperties; |
| | | import org.dromara.common.web.config.properties.CaptchaProperties; |
| | | import org.dromara.common.web.enums.CaptchaType; |
| | | import org.dromara.sms4j.api.SmsBlend; |
| | | import org.dromara.sms4j.api.entity.SmsResponse; |
| | | import org.dromara.sms4j.core.factory.SmsFactory; |
| | | import org.dromara.sms4j.provider.enumerate.SupplierType; |
| | |
| | | */ |
| | | @GetMapping("/resource/sms/code") |
| | | public R<Void> smsCode(@NotBlank(message = "{user.phonenumber.not.blank}") String phonenumber) { |
| | | if (!smsProperties.getEnabled()) { |
| | | return R.fail("当前系统没有开启短信功能!"); |
| | | } |
| | | String key = GlobalConstants.CAPTCHA_CODE_KEY + phonenumber; |
| | | String code = RandomUtil.randomNumbers(4); |
| | | RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION)); |
| | | // 验证码模板id 自行处理 (查数据库或写死均可) |
| | | String templateId = "SMS_460945446"; |
| | | String templateId = ""; |
| | | LinkedHashMap<String, String> map = new LinkedHashMap<>(1); |
| | | map.put("code", code); |
| | | SmsResponse smsResponse = SmsFactory.createSmsBlend(SupplierType.ALIBABA).sendMessage(phonenumber, templateId, map); |
| | | SmsBlend smsBlend = SmsFactory.createSmsBlend(SupplierType.ALIBABA); |
| | | SmsResponse smsResponse = smsBlend.sendMessage(phonenumber, templateId, map); |
| | | if (!"OK".equals(smsResponse.getCode())) { |
| | | log.error("验证码短信发送异常 => {}", smsResponse); |
| | | return R.fail(smsResponse.getMessage()); |