我们自己的服务器是不具备发送短信的功能的 发送短信需要借助第三方平台
这里选择的是阿里大于 原因:免费给10块钱 测试足够了。。。。
新建应用
申请模板 模板要符合规范 可以带变量 比如我这个
验证码:${number},打死不告诉别人!
下载jar包
我这里用的maven maven项目添加本地jar包 有几种解决方案 比如安装到本地仓库
或者直接在pom文件中使用 路径加载
<dependency>
<groupId>com.taobao</groupId>
<artifactId>taobao</artifactId>
<version>1.1.1</version>
<scope>system</scope>
<!--本地jar的路径,相对或者绝对都可以-->
<systemPath>${project.basedir}/lib/taobao-sdk-java-auto_1455552377940-20160607-source.jar</systemPath>
</dependency>
<dependency>
<groupId>com.taobao1</groupId>
<artifactId>taobao1</artifactId>
<version>1.1.1</version>
<scope>system</scope>
<!--本地jar的路径,相对或者绝对都可以-->
<systemPath>${project.basedir}/lib/taobao-sdk-java-auto_1455552377940-20160607.jar</systemPath>
</dependency>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<warName>${project.artifactId}</warName>
<webResources>
<resource>
<directory>lib/</directory>
<targetPath>WEB-INF/lib</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
代码
相关id换成自己申请的
/**
* 获取验证码
* @return
* @throws ApiException
*/
@RequestMapping(value = "/vcode",method = RequestMethod.POST)
@ResponseBody
public String getVcode(String phone, HttpSession session) throws ApiException {
TaobaoClient client = new DefaultTaobaoClient("http://gw.api.taobao.com/router/rest",
"23648980", "d4fc983e69b0172cc8d9f0355a32a4d9");
AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest();
req.setExtend("");
req.setSmsType("normal");
req.setSmsFreeSignName("快递帮");
//生成验证码数字
String vcode = VcodeUtils.gentVcode(6);
//存到session域中
session.setAttribute("vcode",vcode);
logger.info("验证码:"+vcode);
req.setSmsParamString("{number:'"+vcode+"'}");
req.setRecNum(phone);
req.setSmsTemplateCode("SMS_49000057");
AlibabaAliqinFcSmsNumSendResponse rsp = client.execute(req);
System.out.println(rsp.getBody());
return rsp.getBody();
}