Java实现发送手机验证码,发送短信

要发送短信,我们需要第三方提供的短信接口,这里我使用阿里云的短信服务。
首先进入阿里云的官网,然后注册。登陆之后选择云通信——》短信服务
在这里插入图片描述
然后点击免费开通
在这里插入图片描述
开通后进入控制中心,选择右上方的支持与服务,选择帮助与文档
在这里插入图片描述
接着选择云通信短信服务
在这里插入图片描述
然后就进入到官方提供的文档教程了,写得很详细,可以自己参考对接短信接口。
我的操作步骤如下:
在这里插入图片描述
在这里插入图片描述
进入之后先开通RAM访问控制,然后点击人员管理——》用户——》新建用户
在这里插入图片描述
填写名称,由于我用Eclipse编写Java代码发送,所以我选择编程访问,点击确定。
注意:此后会弹出对话框,写有相关信息,不要忙着关闭,一定要记住自己的AccessKey ID和AccessKeySecret,因为关闭后将无法通过任何途径查看这两个信息。也不要泄露这些信息。详情见官方文档
在这里插入图片描述
接着给用户添加权限
在这里插入图片描述
然后就是添加短信签名,进入控制台
在这里插入图片描述
填写签名,选择验证码,之后提交,待审核通过(不通过的话,删除之后再添加)
在这里插入图片描述
签名审核通过之后,再添加短信模板,提交等待审核即可
在这里插入图片描述
在这里插入图片描述
至此,申请流程已经差不多了,接下来就是写代码了,也可以使用官方提供的demo。(推荐使用新版)
在这里插入图片描述
在这里插入图片描述
如果不用maven的话需要两个jar包,其中官方提供了一个,还有一个需要自己下载
先来下载官方提供的
在这里插入图片描述
在这里插入图片描述
另一个jar包下载地址
https://mvnrepository.com/artifact/com.google.code.gson/gson/2.8.5
在这里插入图片描述
当然,发送短信是要收费的,不过有个活动,新人可以免费使用。活动地址
找到短信服务,如果没有企业的话,选择个人专享,0元开通。(可以免费发送100条短信,详情见官方说明)
在这里插入图片描述
如果想了解更多的话,建议查看官方文档,写得很详细
下面是我直接复制的官方demo,能在eclipse中运行,导入刚才下载的2个jar包即可。

package sendPhoneMessage;

import java.text.SimpleDateFormat;
import java.util.Date;

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;


public class QuerySendDetails {
	
	//自己的AccessKey ID(不要泄露)
	static final String accessKeyId = "";
	//自己的AccessKeySecret(不要泄露)
	static final String accessKeySecret = "";
	
	//接收验证码的手机号
	static final String tlephone = "";
	//签名名称
	static final String signName = "";
	//短信模板ID。请在控制台模板管理页面模板CODE一列查看。
	static final String templateCode = "";
    
    /**
     * 生成四位随机数验证码
     * @return
     */
    static String setRandomNumber() {
    	return Integer.toString(((int)(Math.random()*9000+1000)));
    }
    
    public static void main(String[] args) {
    	 DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
         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", tlephone);
         request.putQueryParameter("SignName", signName);
         request.putQueryParameter("TemplateCode", templateCode);
         request.putQueryParameter("TemplateParam", "{\"code\":\""+setRandomNumber()+"\"}");
         try {
             CommonResponse response = client.getCommonResponse(request);
             System.out.println(response.getData());
         } catch (ServerException e) {
             e.printStackTrace();
         } catch (ClientException e) {
             e.printStackTrace();
         }
    }
}

参数说明:

accessKeyId 和 accessKeySecret
刚刚新建用户时记住的AccessKey ID和AccessKeySecret

signName
签名名称
查看方式:
在这里插入图片描述

templateCode
短信模板ID。请在控制台模板管理页面模板CODE一列查看。
查看方式:
在这里插入图片描述

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值