java发送短信验证码
来源:互联网 发布:2017最流行网络用语 编辑:程序博客网 时间:2024/06/05 12:06
1.选择一个短信平台,因为之前项目用的是赛邮云通信(submail),所以在这里以此为例。
2.需要到平台上创建账号,先参阅api文档研究入参。
(1)需要用到应用Id和密钥进行身份鉴权,在应用集成-》应用页面进行创建
(2)创建短信模板,短信-》新建 页面可以创建新的短信模板
3.接口调用
用到的jar包:commons-logging.jar gson.jar httpclient.jar httpcore.jar json-simple.jar
HttpPost httpPost = new HttpPost(); CloseableHttpClient client = HttpClientBuilder.create().build(); httpPost.setURI(new URI("https://api.submail.cn/message/xsend.json")); List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("appid", "*****")); //(1)中创建的appid params.add(new BasicNameValuePair("to", "***********")); //发送的手机号 params.add(new BasicNameValuePair("project", "****")); //(2)中创建的短信模板标识 params.add(new BasicNameValuePair("signature", "*****************")); //(1)中创建的密钥
Map<String,String> vars = new HashMap<>(); vars.put("code","5555"); params.add(new BasicNameValuePair("vars", JSONObject.toJSONString(vars))); //模板中可设可变参数,这里为传参。 在模板中的设置为@var(code) httpPost.setEntity(new UrlEncodedFormEntity(params,"utf-8")); HttpResponse response = client.execute(httpPost); String s = EntityUtils.toString(response.getEntity()); System.out.println(s);
4.一般短信验证码会有时间限制,即几分钟内有效。这里用到的是redis来存取验证码及控制时间。
话不多说,上源码!
@Resource
private RedisTemplate redisTemplate;
BoundValueOperations valueOps = redisTemplate.boundValueOps(phone); String code = (String) valueOps.get(); //发送短信间隔时间1分钟,验证码有效时间2分钟 int timeout = 1; int expireMinute = 2; int codeLength = 6; if (StringUtils.isNotEmpty(code)) { Long expire = valueOps.getExpire(); if (expire >= (expireMinute - timeout) * 60) { throw new ServiceException(StatusCode.ERROR_COMMON, "发送验证码间隔不能小于" + timeout + "分钟"); } else { code = RandomStringUtils.getRandomNumberStr(codeLength); //此方法为创建一个随机六位数,即验证码。 valueOps.set(code); valueOps.expire(expireMinute, TimeUnit.MINUTES); } } else { code = RandomStringUtils.getRandomNumberStr(codeLength); valueOps.set(code); valueOps.expire(expireMinute, TimeUnit.MINUTES); }
阅读全文
0 0
- java发送短信验证码
- java 短信发送验证码
- java发送短信验证码
- java 发送短信验证
- java redis 发送短信验证码
- java向手机号发送短信验证码
- 发送短信验证码
- 发送短信验证码
- 发送短信验证码
- 短信验证码发送
- 发送短信验证码
- 发送短信验证码
- java短信发送,验证功能
- Java实现发送短信验证验证码功能
- Java实现发送短信验证验证码功能
- Android发送短信验证码
- 发送短信验证码计时
- 自定义发送短信验证码
- Lambda表达式和Java集合框架
- Spectral Clustering
- RabbitMQ原理与相关操作(一)
- Turn Task 转弯
- 面试官筛选简历,注重以下几点
- java发送短信验证码
- Java类的初始化过程
- Linux系统下PORT端口引脚导出GPIO对应的序号关系
- Android 拖拽操作demo
- gradle配置升级
- python模块学习(threading模块中的Lock类和RLock类)
- php支付宝开发之pc网站支付接入
- ActiveMq--01
- centos7修改网卡名称、网卡双网卡绑定