阿里云实现发送短信(java实例教程)

Java实现发送短信
学习视频地址:https://www.bilibili.com/video/av93808102
一.开通短信服务
1.百度搜索阿里大鱼
阿里云实现发送短信(java实例教程)_第1张图片
2.登录或注册(我是用支付宝登录的)
阿里云实现发送短信(java实例教程)_第2张图片
3.点击进入短信服务
点击短信服务
阿里云实现发送短信(java实例教程)_第3张图片
点击管理控制台
阿里云实现发送短信(java实例教程)_第4张图片
短信服务页面
阿里云实现发送短信(java实例教程)_第5张图片
4.查看帮助文档
阿里云实现发送短信(java实例教程)_第6张图片
帮助文档页面
阿里云实现发送短信(java实例教程)_第7张图片
获取私钥和密钥
点击进入阿里云短信服务文档使用指引
阿里云实现发送短信(java实例教程)_第8张图片
点击获取AccessKey(一定要保存好,而且不要给别人看)
阿里云实现发送短信(java实例教程)_第9张图片
快速入门界面
阿里云实现发送短信(java实例教程)_第10张图片
1)实名认证(没什么好说的)
2)开通短信服务
点击阿里云短信服务文档使用指引
阿里云实现发送短信(java实例教程)_第11张图片
点击开通短信服务
阿里云实现发送短信(java实例教程)_第12张图片
3)申请短信签名
添加签名(需要审核)
阿里云实现发送短信(java实例教程)_第13张图片
签名页面:
阿里云实现发送短信(java实例教程)_第14张图片
4)申请短信模板
添加短信模板(需要审核)
阿里云实现发送短信(java实例教程)_第15张图片
模板页面
阿里云实现发送短信(java实例教程)_第16张图片
5)发送短信
点击安装你需要的SDK(我用的是java SDK
阿里云实现发送短信(java实例教程)_第17张图片
点击下载jar包,并导进项目中(还得导入一个gson.2.8.1.jar,有的版本不兼容)
阿里云实现发送短信(java实例教程)_第18张图片
或者使用maven(推荐)


     com.aliyun
     aliyun-java-sdk-core
     4.1.0 

点击openAPI Explorer
在这里插入图片描述
输入左边的参数,自动生成右边的代码。将右边的代码复制到项目中。
阿里云实现发送短信(java实例教程)_第19张图片
5.注意事项
需要创建一个用户并授权(否则会报未授权的错误)
点击右边用户下面显示的访问控制,点击用户管理。新建一个用户(会审核一下)。
阿里云实现发送短信(java实例教程)_第20张图片
给新建的用户授予短信服务的权力:
阿里云实现发送短信(java实例教程)_第21张图片
需要充值一点钱(否则测试的时候会显示余额不足)。
6.验证码测试案例
前端代码(index.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




短信验证码系统



【里旗书城】短信验证码系统

手机号码:

后端代码- GetCodeServlet(发送验证码并获取发送的验证码)

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
@WebServlet("/getCode.do")
public class GetCodeServlet extends HttpServlet {
   @Override
   public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
	   //生成一个思维数的随机验证码
	   String str = "";
	   for(int i = 0;i<4;i++) {
		   str+=(int)Math.floor(Math.random()*10);
	   }
	   request.getSession().setAttribute("_code", str);
	   //获取前台传送过来的手机号码
	   String phone = request.getParameter("phone");
	   sendMsg(phone, str);
   }
   private void sendMsg(String phone,String str) {
	   DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "LTAI4FvTFDDuFoQuiybujgkq", "ZuXKnXoFeoz5MuIkF66hMNi3DDqwt9");
       IAcsClient client = new DefaultAcsClient(profile);

       CommonRequest request = new CommonRequest();
       request.setMethod(MethodType.POST);
       request.setDomain("dysmsapi.aliyuncs.com");
       request.setVersion("2017-05-25");
       request.setAction("SendSms");
       request.putQueryParameter("RegionId", "cn-hangzhou");
       request.putQueryParameter("PhoneNumbers", phone);
       request.putQueryParameter("SignName", "里旗书城");
       request.putQueryParameter("TemplateCode", "SMS_186577188");
       request.putQueryParameter("TemplateParam", "{'code':'"+str+"'}");
       try {
           CommonResponse response = client.getCommonResponse(request);
           System.out.println(response.getData());
       } catch (ServerException e) {
           e.printStackTrace();
       } catch (ClientException e) {
           e.printStackTrace();
       }
   }
}

后端代码- ValidateServlet(验证码校验)

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/validate.do")
public class ValidateServlet extends HttpServlet {

	 @Override
	 public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
		 //1.获取前台传送过来的code
		 String code = request.getParameter("code");
		 //2.获取后台随机产生的验证码
		 String _code = (String) request.getSession().getAttribute("_code");
		 //3.对比是否相等
		 if(_code.equals(code)) {
			 System.out.println("成功!");
			 response.getWriter().print("success....");
		 }else {
			 response.getWriter().print("fail....");
		 }
	 }
}

你可能感兴趣的:(java,后端,java)