前言
短信验证登咱就不多说了,为什么推荐用秒嘀的呢,应为他会送你10元钱,对于新手来说10元钱,足够你玩了。但是秒嘀的其它功能需要上传营业执照。
注册秒嘀云账号
http://www.miaodiyun.com/auth/login
登录秒嘀云官网
获取ACCOUNT SID和AUTH TOKEN并创建对应类型短信的模板
跟进秒嘀运营人员审核通过该模板。
提交之后,需要等待审核,如果审核不通过,会有错误信息,自行修改,直到通过为止。
代码
下载官方的接口代码,里面有java和python,自行解压,今天只说java
会有四个包,全都导进去
需要填写的东西在登录秒嘀就知道了
我修改的 IndustrySMS类,添加了随机的6位数字,当做验证码
package com.miaodiyun.httpApiDemo;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import com.miaodiyun.httpApiDemo.common.Config;
import com.miaodiyun.httpApiDemo.common.HttpUtil;
/**
* 验证码通知短信接口
*
* @ClassName: IndustrySMS
* @Description: 验证码通知短信接口
*
*/
public class IndustrySMS {
private static String operation = "/industrySMS/sendSMS";
private static String accountSid = Config.ACCOUNT_SID;
/*private static String to = "";*/
public static String getSCode() {
Random random = new Random();
String str = random.nextInt(1000000) + "";
if (str.length() != 6) {
return getSCode();
}
return "【自己申请的短信签名】您的验证码为" + str + ",请于30分钟内正确输入,如非本人操作,请忽略此短信。";
//【】后面的是申请成功的短信内容str是6位验证码,注意拼接方式
}
/**
* 验证码通知短信
*/
public static Map<String,String> execute(String id) {
Map<String,String> map=new HashMap<String,String>();
String tmpSmsContent = null;
try {
String SCode =getSCode();
map.put("SCode", SCode);
tmpSmsContent = URLEncoder.encode(SCode, "UTF-8");
} catch (Exception e) {
}
String url = Config.BASE_URL + operation;
String body = "accountSid=" + accountSid + "&to=" + id + "&smsContent="
+ tmpSmsContent + HttpUtil.createCommonParam();
// 提交请求
String result = HttpUtil.post(url, body);
return map;
}
}
你只需要调取 IndustrySMS类的execute方法就可以了(注意:execute方法需要传一个手机号给这个方法)execute返回一个map集合,是6位的验证码。你可以把验证码存到redis数据库中设置一个过期时间,然后前端查询是否有这个验证码。我的建议是把传入的手机号和生成的验证码都放到数据库中。查的时候以这两个条件查出来。