阿里通信短信服务是阿里云提供的一种短信发送解决方案,用于短信验证码、营销短信等业务场景。以下是用于发送短信的阿里通信短信demo示例代码:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import com.aliyuncs.sms.model.v20170525.*;
import java.util.Random;
public class AliyunSmsDemo {
public static void main(String[] args) {
// AK、SK等配置信息
String accessKeyId = "your-access-key-id";
String accessKeySecret = "your-access-key-secret";
// 短信签名
String signName = "your-sign-name";
// 短信模板Code
String templateCode = "your-template-code";
// 短信接收号码
String phoneNumber = "your-phone-number";
// 生成6位随机验证码
String code = String.valueOf(new Random().nextInt(999999));
// 发送短信
SendSmsResponse response;
try {
response = sendSms(accessKeyId, accessKeySecret, signName, templateCode, phoneNumber, code);
System.out.println("短信发送结果:" + response.getCode());
} catch (ClientException e) {
e.printStackTrace();
}
}
/**
* 发送短信
*
* @param accessKeyId 阿里云AccessKeyId
* @param accessKeySecret 阿里云AccessKeySecret
* @param signName 短信签名
* @param templateCode 短信模板Code
* @param phoneNumber 短信接收号码
* @param code 验证码
* @return SendSmsResponse
* @throws ClientException
*/
public static SendSmsResponse sendSms(String accessKeyId, String accessKeySecret, String signName, String templateCode, String phoneNumber, String code)
throws ClientException {
// 初始化DefaultAcsClient
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
DefaultSmsClient client = new DefaultSmsClient(profile);
// 创建发送短信的请求对象
SendSmsRequest request = new SendSmsRequest();
request.setPhoneNumbers(phoneNumber); // 设置短信接收号码
request.setSignName(signName); // 设置短信签名
request.setTemplateCode(templateCode); // 设置短信模板Code
request.setTemplateParam("{"code": " + code + "}"); // 设置短信模板参数
// 发送短信
SendSmsResponse response = client.getAcsResponse(request);
return response;
}
}
使用时,需要替换代码中的以下配置信息:
accessKeyId
和accessKeySecret
:阿里云的AccessKeyId和AccessKeySecret,在阿里云控制台的RAM访问控制中可以获取。signName
:短信签名,需要在阿里云短信服务中申请并审核通过。templateCode
:短信模板Code,需要在阿里云短信服务中申请并审核通过。phoneNumber
:短信接收号码,可以是手机号码或者阿里云短信服务中申请的测试号码。
运行以上代码,就可以发送短信了。请注意,阿里云短信服务需要付费使用,具体费用请参考阿里云官方文档。
请参考以下阿里通信短信demo示例:
import java.util.HashMap;
import java.util.Map;
import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teaopenapi.modules.AcsError;
import com.aliyun.teaopenapi.modules.ApiException;
import com.aliyun.teaopenapi.modules.ApiRequest;
import com.aliyun.teaopenapi.modules.ApiResponse;
import com.aliyun.teaopenapi.modules.DefaultAcsClient;
public class AliyunSmsDemo {
private static final String accessKeyId = "<你的AccessKeyId>";
private static final String accessKeySecret = "<你的AccessKeySecret>";
private static final String signName = "<短信签名名称>";
private static final String templateCode = "<短信模板CODE>";
public static void main(String[] args) {
Config config = new Config()
// 您的 AccessKey ID
.setAccessKeyId(accessKeyId)
// 您的 AccessKey Secret
.setAccessKeySecret(accessKeySecret);
DefaultAcsClient client = new DefaultAcsClient(config);
SendSmsRequest request = new SendSmsRequest()
.setPhoneNumbers("<收信人手机号>")
.setSignName(signName)
.setTemplateCode(templateCode)
.setTemplateParam("{"code":"123456"}"); // 替换为实际的短信模板参数
try {
SendSmsResponse response = client.sendRequest(request);
if (response.getCode().equals("OK")) {
System.out.println("短信发送成功!");
} else {
System.out.println("短信发送失败:" + response.getCode() + "-" + response.getMessage());
}
} catch (ApiException e) {
AcsError ae = (AcsError) e.getErrModel();
System.out.println("短信发送失败:" + ae.getErrorCode() + "-" + ae.getErrorMessage());
}
}
}
请将<你的AccessKeyId>
、<你的AccessKeySecret>
、<短信签名名称>
、<短信模板CODE>
和<收信人手机号>
替换为实际的参数。
运行该demo即可发送短信。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/112024.html