调用阿里云手机短信接口

java 复制代码
	<!-- 适配JDK8 的短信服务接口 -->
	
	<!-- 阿里云核心库 -->
    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-core</artifactId>
        <version>4.5.28</version>
    </dependency>
    <!-- 短信服务 SDK -->
    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
        <version>2.1.0</version>
    </dependency>
    <!-- 其他依赖(如 JSON 解析) -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.83</version>
    </dependency>
java 复制代码
package com.tools;


import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.profile.DefaultProfile;

public class AliyunDuanxinUtil {

	public static void main(String[] args) {
		 // TODO Auto-generated method stub
		  DefaultProfile profile = DefaultProfile.getProfile(
		            "cn-hangzhou",          // 地域ID
		           "your-access-key-id",   // AccessKey ID
		          "your-access-key-secret" // Secret 密钥
		       );
		  
		  
		  
		        IAcsClient client = new DefaultAcsClient(profile);

		        SendSmsRequest request = new SendSmsRequest();
		    
		        request.setPhoneNumbers("15937443028"); //本人
		     
		        
		          //设置短信签名,即短信开头的【】中的内容(如 【阿里云】)。 
		          //注意事项:签名需在 阿里云短信控制台 提前申请并审核通过。
		        request.setSignName("短信签名");         
		        //设置短信模板 ID。
		       // 模板需在阿里云控制台申请,审核通过后获取唯一 ID(如 SMS_330320963)。
		        //模板内容示例:     您的验证码是${code},5分钟内有效,请勿泄露!
		      
		        
		         request.setTemplateCode("SMS_501775581"); //短信模板 ID
			        
		         
		        //${code} 是模板变量,需通过 setTemplateParam 动态填充。
				/*
				 * 敬爱的${name},诚邀您到访2024中国机器人博览会未来之城,${url}  预祝您观展愉快! 拒收请回复R
				 */
		       // request.setTemplateParam("{\"name\":\"张三丰\",\"url\":\"8697\"}");
		        
		/*
		 * 亲爱的博览会贵宾${name},您的邀请函已生成,欢迎您尊贵体验。拒收请回复R
		 */    
		        
		         String userName="小亮";
		         request.setTemplateParam("{\"name\":\""+userName+"\"}");
			        
		       
		        //例如:    尊敬的${name},您的订单${orderId}已发货,物流单号:${expressNo}。
		        //对应的 request.setTemplateParam("{\"name\":\"张三\", \"orderId\":\"12345\", \"expressNo\":\"SF123456789\"}");
		        
		        try {
		           // client.getAcsResponse(request);
		           // System.out.println("短信发送成功!");
		            
		            SendSmsResponse response = client.getAcsResponse(request);
		            System.out.println("短信发送状态:");
		            System.out.println("RequestId: " + response.getRequestId());
		            System.out.println("状态码: " + response.getCode());
		            System.out.println("状态信息: " + response.getMessage());
		            
		            if("OK".equals(response.getCode())) {
		                System.out.println("短信已提交到运营商");
		            } else {
		                System.out.println("发送失败,请参考:");
		                System.out.println("https://help.aliyun.com/document_detail/101346.html");
		            }
		            
		            
		        } catch (Exception e) {
		            e.printStackTrace();
		        }
		   
	  }
		
	//重复使用 短信接口调用的函数
		public static String callDuanxin(String userName,String userPhone,String href) {
		
		
			DefaultProfile profile = DefaultProfile.getProfile(
					    "cn-hangzhou",          // 地域ID
			            "LTAI5tPL6uk1oxeEKrB7FAcU1",   // AccessKey ID
			            "RQuaBD7DGCra743FkBQLBBo8kue3lS1" // Secret 密钥
		        );
		  
		        IAcsClient client = new DefaultAcsClient(profile);

		        SendSmsRequest request = new SendSmsRequest();
		       // request.setPhoneNumbers("15937443024");
		        request.setPhoneNumbers(userPhone);
		           //设置短信签名,即短信开头的【】中的内容(如 【阿里云】)。 
		           //注意事项:签名需在 阿里云短信控制台 提前申请并审核通过。
		        request.setSignName("抛物线");     
		      
		        //设置短信模板 ID。
		       // 模板需在阿里云控制台申请,审核通过后获取唯一 ID(如 SMS_330320963)。
		        //模板内容示例:     您的验证码是${code},5分钟内有效,请勿泄露!
		      
		         request.setTemplateCode("SMS_501775581"); //设置短信模板 ID
			     
		        
		        //${code} 是模板变量,需通过 setTemplateParam 动态填充。
		        //request.setTemplateParam("{\"code\":\"1234\"}");
       
		        request.setTemplateParam("{\"name\":\""+userName+"\"}");
		        
		        //例如:    尊敬的${name},您的订单${orderId}已发货,物流单号:${expressNo}。
		        //对应的 request.setTemplateParam("{\"name\":\"张三\", \"orderId\":\"12345\", \"expressNo\":\"SF123456789\"}");
		        
		        try {
		            client.getAcsResponse(request);
		            System.out.println("短信发送成功!");
		        } catch (Exception e) {
		            e.printStackTrace();
		        }
		        
		        return "";
		
		}
		
		
		
		
}
相关推荐
翼龙云_cloud1 小时前
阿里云国际版代理商:OSS自定义域名绑定与HTTPS配置排障教程
数据库·阿里云·https·云计算
sbjdhjd2 小时前
CTF 技术复盘:从参数类型绕过到正则回溯 | Merry Christmas PHP CTF(gift.php & gift_plus.php)
安全·网络安全·云计算·php·ctf·红队·网络攻防
皮皮虾❀2 小时前
阿里云代理商采购+超额返点一体化实战:从“单次采购无优惠“到“年度合作解锁最高35%专属返点“的成本优化方案
阿里云·云计算
SaaS_Product21 小时前
企业云盘收费标准主要取决于什么?企业云盘价格到底怎么算?
大数据·云计算·saas·onedrive
2401_861678621 天前
阿里云远程连接
阿里云·云计算
迪康coolmu1 天前
企业文件外发防泄漏实践:从通道封堵到三层全链路管控
大数据·运维·网络·人工智能·安全·阿里云
皮皮虾❀2 天前
阿里云上云迁移服务商选型+官方资质核验+ACE认证团队一体化实战:从“买到假代理”到“官网可查认证服务商承接迁移项目
阿里云·云计算
怪奇云呼军2 天前
知识库也会注入指令?闪电智能VoiceAgent 如何防住 Prompt Injection
人工智能·python·算法·云计算·音视频
jikemaoshiyanshi2 天前
企业搭建大模型网关与智能路由体系,如何实现精细化推理分发?——AWS 双层网关架构适配规模化业务落地
架构·云计算·aws
径硕科技JINGdigital2 天前
AI 训练时 GPU 利用率低,哪些云上高性能存储方案更适合优化训练成本?AWS 按 I/O 瓶颈分层选型
人工智能·云计算·aws