2023年7月31日发(作者:)

阿⾥云短信服务(可以尝试容联云)⼀、开通阿⾥云短信服务1.1、开通阿⾥云短信服务1.2、添加签名管理与模板管理注:审批通过后⽅可使⽤1.3、获取⽤户AccessKey⼆、搭建service-msm模块1.1、 搭建service-msm模块sm模块搭建过程参考service-hosp模块1.2、修改配置1、修改 aliyun-java-sdk-core 2、添加配置⽂件ties# 服务端⼝=8204# 服务名=service-msm#返回json的全局时间格式-format=yyyy-MM-dd HH:mm:-zone=GMT+==se= t=-active=-wait=-1#最⼤阻塞等待时间(负数表⽰没限制)-idle=-idle=0# nacos服务地址-addr=127.0.0.1:8848

Id=KeyId==jX8D04Dm12I3gGKj345FYSzu0fq8mT3、启动类@SpringBootApplication(exclude = )//取消数据源⾃动配置@EnableDiscoveryClientpublic class ServiceMsmApplication { public static void main(String[] args) { (, args); }}4、配置⽹关#设置路由[3].id=service-msm#设置路由的[3].uri=lb://service-msm#设置路由断⾔,代理servicerId为auth-service的/auth/路径[3].predicates= Path=/*/msm/**三、封装注册短信验证码接⼝1、添加配置类@Componentpublic class ConstantPropertiesUtils implements InitializingBean { @Value("${Id}") private String regionId; @Value("${KeyId}") private String accessKeyId; @Value("${}") private String secret; public static String REGION_Id; public static String ACCESS_KEY_ID; public static String SECRECT; @Override public void afterPropertiesSet() throws Exception { REGION_Id=regionId; ACCESS_KEY_ID=accessKeyId; SECRECT=secret; }}2、封装service接⼝和实现类public interface MsmService { //发送⼿机验证码 boolean send(String phone, String code);}@Servicepublic class MsmServiceImpl implements MsmService { @Override public boolean send(String phone, String code) { //判断⼿机号是否为空 if(y(phone)) { return false; } //整合阿⾥云短信服务 //设置相关参数 DefaultProfile profile = DefaultProfile. getProfile(_Id, _KEY_ID, T); IAcsClient client = new DefaultAcsClient(profile); CommonRequest request = new CommonRequest(); //tocol(); hod(); ain(""); sion("2017-05-25"); ion("SendSms"); //⼿机号 ryParameter("PhoneNumbers", phone); //签名名称 ryParameter("SignName", "我的⾕粒在线教育⽹站"); //模板code ryParameter("TemplateCode", "SMS_180051135"); //验证码 使⽤json格式 {"code":"123456"} Map param = new HashMap(); ("code",code); ryParameter("TemplateParam", String(param)); //调⽤⽅法进⾏短信发送 try { CommonResponse response = monResponse(request); n(a()); return pResponse().isSuccess(); } catch (ServerException e) { tackTrace(); } catch (ClientException e) { tackTrace(); } return false; }}3、封装controller接⼝@RestController@RequestMapping("/api/msm")public class MsmApiController { @Autowired private MsmService msmService; @Autowired private RedisTemplate redisTemplate; //发送⼿机验证码 @GetMapping("send/{phone}") public Result sendCode(@PathVariable String phone) { //从redis获取验证码,如果获取获取到,返回ok // key ⼿机号 value 验证码 String code = Value().get(phone); if(!y(code)) { return (); } //如果从redis获取不到, // ⽣成验证码, code = BitRandom(); //调⽤service⽅法,通过整合短信服务进⾏发送 boolean isSend = (phone,code); //⽣成验证码放到redis⾥⾯,设置有效时间 if(isSend) { Value().set(phone,code,2, S); return (); } else { return ().message("发送短信失败"); } }}4、⽣成验证码⼯具类public class RandomUtil { private static final Random random = new Random(); private static final DecimalFormat fourdf = new DecimalFormat("0000"); private static final DecimalFormat sixdf = new DecimalFormat("000000"); public static String getFourBitRandom() { return (t(10000)); } public static String getSixBitRandom() { return (t(1000000)); } /** * 给定数组,抽取n个数据 * @param list * @param n * @return */ public static ArrayList getRandom(List list, int n) { Random random = new Random(); HashMap hashMap = new HashMap();// ⽣成随机数字并存⼊HashMap for (int i = 0; i < (); i++) { int number = t(100) + 1; (number, i); }// 从HashMap导⼊数组 Object[] robjs = ().toArray(); ArrayList r = new ArrayList();// 遍历数组并打印数据 for (int i = 0; i < n; i++) { (((int) robjs[i])); (((int) robjs[i]) + "t"); } ("n"); return r; }}5、完善登录service接⼝修改UserInfoServiceImpl类登录⽅法,编写验证码校验//校验校验验证码String mobleCode = Value().get(phone);if(!(mobleCode)) { throw new YyghException(_ERROR);}

2023年7月31日发(作者:)

阿⾥云短信服务(可以尝试容联云)⼀、开通阿⾥云短信服务1.1、开通阿⾥云短信服务1.2、添加签名管理与模板管理注:审批通过后⽅可使⽤1.3、获取⽤户AccessKey⼆、搭建service-msm模块1.1、 搭建service-msm模块sm模块搭建过程参考service-hosp模块1.2、修改配置1、修改 aliyun-java-sdk-core 2、添加配置⽂件ties# 服务端⼝=8204# 服务名=service-msm#返回json的全局时间格式-format=yyyy-MM-dd HH:mm:-zone=GMT+==se= t=-active=-wait=-1#最⼤阻塞等待时间(负数表⽰没限制)-idle=-idle=0# nacos服务地址-addr=127.0.0.1:8848

Id=KeyId==jX8D04Dm12I3gGKj345FYSzu0fq8mT3、启动类@SpringBootApplication(exclude = )//取消数据源⾃动配置@EnableDiscoveryClientpublic class ServiceMsmApplication { public static void main(String[] args) { (, args); }}4、配置⽹关#设置路由[3].id=service-msm#设置路由的[3].uri=lb://service-msm#设置路由断⾔,代理servicerId为auth-service的/auth/路径[3].predicates= Path=/*/msm/**三、封装注册短信验证码接⼝1、添加配置类@Componentpublic class ConstantPropertiesUtils implements InitializingBean { @Value("${Id}") private String regionId; @Value("${KeyId}") private String accessKeyId; @Value("${}") private String secret; public static String REGION_Id; public static String ACCESS_KEY_ID; public static String SECRECT; @Override public void afterPropertiesSet() throws Exception { REGION_Id=regionId; ACCESS_KEY_ID=accessKeyId; SECRECT=secret; }}2、封装service接⼝和实现类public interface MsmService { //发送⼿机验证码 boolean send(String phone, String code);}@Servicepublic class MsmServiceImpl implements MsmService { @Override public boolean send(String phone, String code) { //判断⼿机号是否为空 if(y(phone)) { return false; } //整合阿⾥云短信服务 //设置相关参数 DefaultProfile profile = DefaultProfile. getProfile(_Id, _KEY_ID, T); IAcsClient client = new DefaultAcsClient(profile); CommonRequest request = new CommonRequest(); //tocol(); hod(); ain(""); sion("2017-05-25"); ion("SendSms"); //⼿机号 ryParameter("PhoneNumbers", phone); //签名名称 ryParameter("SignName", "我的⾕粒在线教育⽹站"); //模板code ryParameter("TemplateCode", "SMS_180051135"); //验证码 使⽤json格式 {"code":"123456"} Map param = new HashMap(); ("code",code); ryParameter("TemplateParam", String(param)); //调⽤⽅法进⾏短信发送 try { CommonResponse response = monResponse(request); n(a()); return pResponse().isSuccess(); } catch (ServerException e) { tackTrace(); } catch (ClientException e) { tackTrace(); } return false; }}3、封装controller接⼝@RestController@RequestMapping("/api/msm")public class MsmApiController { @Autowired private MsmService msmService; @Autowired private RedisTemplate redisTemplate; //发送⼿机验证码 @GetMapping("send/{phone}") public Result sendCode(@PathVariable String phone) { //从redis获取验证码,如果获取获取到,返回ok // key ⼿机号 value 验证码 String code = Value().get(phone); if(!y(code)) { return (); } //如果从redis获取不到, // ⽣成验证码, code = BitRandom(); //调⽤service⽅法,通过整合短信服务进⾏发送 boolean isSend = (phone,code); //⽣成验证码放到redis⾥⾯,设置有效时间 if(isSend) { Value().set(phone,code,2, S); return (); } else { return ().message("发送短信失败"); } }}4、⽣成验证码⼯具类public class RandomUtil { private static final Random random = new Random(); private static final DecimalFormat fourdf = new DecimalFormat("0000"); private static final DecimalFormat sixdf = new DecimalFormat("000000"); public static String getFourBitRandom() { return (t(10000)); } public static String getSixBitRandom() { return (t(1000000)); } /** * 给定数组,抽取n个数据 * @param list * @param n * @return */ public static ArrayList getRandom(List list, int n) { Random random = new Random(); HashMap hashMap = new HashMap();// ⽣成随机数字并存⼊HashMap for (int i = 0; i < (); i++) { int number = t(100) + 1; (number, i); }// 从HashMap导⼊数组 Object[] robjs = ().toArray(); ArrayList r = new ArrayList();// 遍历数组并打印数据 for (int i = 0; i < n; i++) { (((int) robjs[i])); (((int) robjs[i]) + "t"); } ("n"); return r; }}5、完善登录service接⼝修改UserInfoServiceImpl类登录⽅法,编写验证码校验//校验校验验证码String mobleCode = Value().get(phone);if(!(mobleCode)) { throw new YyghException(_ERROR);}