JAVA阿里云短信接口调用-傻瓜式教程

1、首先登陆阿里云,创建账号登陆(可以直接使用支付宝登陆),找到控制台->云通信->短信服务。点击进入。
在这里插入图片描述

2、进入到短信服务控制台后,首先申请自己的AccessKey.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
申请到后会给你生成一个excel表格,里面存放的就是自己的AK,需要自己保存,后面在代码中测试时会用到,在沙箱环境下不用填写。

3、拿到AK后,可以到看到短信服务控制台里面有一个快速学习,进去可以使用平台提供的短信模板和签名试用(前提是账户中有余额,不购买套餐默认是0.045一条,作为个人开发者来说已经很便宜了,账上充值10元就足矣),如果需要使用自己的签名和模板,需要提交申请,一般情况下很快就会通过,通过之后就可以使用自己的签名和模板进行测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.当所有东西准备就绪后,就可以到调试环境中进行调试
在这里插入图片描述
其中,短信模板变量对应的实际值为JSON格式,即键值对的形势,你的模板中有几个就要在输入框中写几个JSON格式变量,上图中我给出了一个例子(因为我的模板中只有一个参数)。调试成功返回如下,若失败会有提示错误代码,可以在帮助文档中找到是什么原因。
在这里插入图片描述

当调试成功后,可以直接将代码复制下来,因为在调试时填入的信息都动态加入到代码中,接下来可以到编译器中测试。
4、下载JAR包,导入JAR包后即可在编译器中测试。由于我用的编译器是eclipse,所以我就以eclipse为例。需要使用三个JAR包(aliyun-java-sdk-core-4.1.0.jar、aliyun-java-sdk-dysmsapi-1.1.0.jar、gson-2.8.5.jar),我已经将这三个jar包上传了,点击下载
5、将jar包导入项目,然后将台式成功的代码直接复制下来放到项目中就可以测试了。

import java.util.Random;
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 PhoneCode {
	/**
	 * @param phone
	 *            发送到的手机号
	 * @param code
	 *            验证码内容
	 */
	public static void sendCode(String phone, String code) {
		//此处放AccessKeyID和AccessKeySecret
		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", phone);
		//此处放签名名称(必须审核通过)
		request.putQueryParameter("SignName", "<短信签名>");
		//此处放短信模板(必须审核通过)
		request.putQueryParameter("TemplateCode", "<短信模板>");
		//此处放验证码的内容(JSON格式\"表示转义。JSON格式:{"code":"666666"})
		request.putQueryParameter("TemplateParam", "{\"code\":\"" + code + "\"}");
		try {
			CommonResponse response = client.getCommonResponse(request);
			System.out.println(response.getData());
		} catch (ServerException e) {
			e.printStackTrace();
		} catch (ClientException e) {
			e.printStackTrace();
		}
	}

	/**
	 * @return 随机生成的6位验证码
	 */
	public static String getCode() {
		StringBuilder sb = new StringBuilder();
		for (int i = 0; sb.length() < 6; i++) {
			int num = new Random().nextInt(10);
			sb.append(num);
		}
		return sb.toString();
	}
}

编写Test类测试:

public class Test {

	public static void main(String[] args) {
		PhoneCode phoneCode = new PhoneCode();
		// 获取随机验证码
		String code = phoneCode.getCode();
		// 接收短信的手机号
		String phone = "13333333333";
		// 调用发短信的方法
		phoneCode.sendCode(phone, code);
	}
}

如果有错误信息,可以到阿里云平台查询帮助文档。

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
以下是使用Java调用阿里云短信接口的步骤: 1. 首先,你需要在阿里云官网注册并创建一个短信服务。你可以参考阿里云官网提供的文档来了解如何创建短信服务。 2. 在你的Java项目中,你需要引入阿里云短信SDK的依赖。你可以在Maven项目中的pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>com.aliyun</groupId> <artifactId>dysmsapi20170525</artifactId> <version>2.0.6</version> </dependency> ``` 3. 在你的Java代码中,你需要导入阿里云短信SDK的相关类和方法。例如: ```java import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.profile.IClientProfile; import com.aliyuncs.sms.model.v20170525.*; ``` 4. 创建一个DefaultAcsClient对象,并设置好AccessKey和SecretKey。例如: ```java String accessKeyId = "your_access_key_id"; String accessKeySecret = "your_access_key_secret"; IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret); DefaultAcsClient client = new DefaultAcsClient(profile); ``` 5. 构造一个SendSmsRequest对象,并设置好短信相关的参数,例如短信签名、模板ID、手机号码和模板参数。例如: ```java SendSmsRequest request = new SendSmsRequest(); request.setSignName("your_sign_name"); request.setTemplateCode("your_template_code"); request.setPhoneNumbers("your_phone_number"); request.setTemplateParam("{\"code\":\"123456\"}"); ``` 6. 调用client的sendSms方法发送短信,并处理发送结果。例如: ```java try { SendSmsResponse response = client.getAcsResponse(request); if (response.getCode() != null && response.getCode().equals("OK")) { System.out.println("短信发送成功"); } else { System.out.println("短信发送失败,错误码:" + response.getCode()); } } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { e.printStackTrace(); } ``` 请注意,以上代码仅为示例,你需要根据你的实际情况进行相应的修改。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值