这几个月都在用java做一个企业的积分商城系统,需要用户用手机号码进行注册登录,所以需要接入一个短信验证码进去。
短信验证码实现流程
1、构造手机验证码,生成一个4位的随机数字串;
2、使用接口向短信平台发送手机号和验证码,然后短信平台再把验证码发送到用户提交的手机号上
3、将手机号验证码、操作时间存入Session中,作为后面验证使用;
4、接收用户填写的验证码、手机号及其他注册数据;
5、对比提交的验证码与Session中的验证码是否一致,同时判断提交动作是否在有效期内;
6、验证码正确且在有效期内,请求通过,处理相应的业务。
这里有两种方法接入短信验证码,一是通过OkHttp方法:
OkHttpClient client = new OkHttpClient().newBuilder()
.followRedirects(false)
.build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded;charset=utf-8");
RequestBody body = RequestBody.create(mediaType, "appId=41KYR0EB****&appKey=IIWCKKSR7NOQ****&phone=1561894****&templateId=1043&variables=1234");
Request request = new Request.Builder()
.url("https://vip.veesing.com/smsApi/verifyCode")
.method("POST", body)
.addHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8")
.build();
Response response = client.newCall(request).execute();
二是通过Unirest方法:
Unirest.setTimeouts(0, 0);
HttpResponse response = Unirest.post("https://vip.veesing.com/smsApi/verifyCode")
.header("Content-Type", "application/x-www-form-urlencoded;charset=utf-8")
.field("appId", "41KYR0EB****")
.field("appKey", "IIWCKKSR7NOQ****")
.field("phone", "1561894****")
.field("templateId", "1043")
.field("variables", "1234")
.asString();
以上就是全部内容,有疑问的小伙伴可以在评论区留言。