阿里云短信发送过程

import java.text.SimpleDateFormat;  
import java.util.Date;  
import com.aliyuncs.DefaultAcsClient;  
import com.aliyuncs.IAcsClient;  
import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsRequest;  
import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsResponse;  
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;  
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;  
import com.aliyuncs.exceptions.ClientException;  
import com.aliyuncs.exceptions.ServerException;  
import com.aliyuncs.profile.DefaultProfile;  
import com.aliyuncs.profile.IClientProfile;  
  
public class AliyunMessage {  
    //产品名称:云通信短信API产品,开发者无需替换  
    static final String product="Dysmsapi";  
     //产品域名,开发者无需替换  
    static final String domain = "dysmsapi.aliyuncs.com";  
    // TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找),下面举个例子  
    static final String accessKeyId = "********";  
    static final String accessKeySecret = "**********";  
    //<span style="white-space:pre;">  </span>static final String accessKeySecret = "g3EwarlgO9JE6j5pylO25e";  
      
      
    public static SendSmsResponse sendSms() throws ClientException{  
        //可自助调整超时时间  
        System.setProperty("sun.net.client.defaultConnectTimeout", "10000");  
        System.setProperty("sun.net.client.defaultReadTimeout", "10000");  
        //初始化acsClient,暂不支持region化  
        IClientProfile profile=DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);  
        DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);  
        IAcsClient acsClient=new DefaultAcsClient(profile);  
      //组装请求对象-具体描述见控制台-文档部分内容  
        SendSmsRequest request=new SendSmsRequest();  
      //必填:待发送手机号  
        request.setPhoneNumbers("发送到的手机号*********");  
      //必填:短信签名-可在短信控制台中找到举个例子  
        request.setSignName("MyHelloWorld");  
      //必填:短信模板id-可在短信控制台中找到,是id不是名字,举个例子  
        request.setTemplateCode("SMS_135565042");  
      //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为--必填,与模板相对应  
        //request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}");  
        request.setTemplateParam("{\"code\":\"123456\"}");  
      //选填-上行短信扩展码(无特殊需求用户请忽略此字段)  
        //request.setSmsUpExtendCode("90997");  
      //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者  
        //request.setOutId("yourOutId");  
      //hint 此处可能会抛出异常,注意catch  
        SendSmsResponse sendSmsResponse=acsClient.getAcsResponse(request);  
        return sendSmsResponse;  
    }  
      
    public static QuerySendDetailsResponse querySendDetails(String bizId) throws ServerException, ClientException{  
        //可自助调整超时时间  
        System.setProperty("sun.net.client.defaultConnectTimeout", "60000");  
        System.setProperty("sun.net.client.defaultReadTimeout", "60000");  
  
        //初始化acsClient,暂不支持region化  
        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);  
        DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);  
        IAcsClient acsClient = new DefaultAcsClient(profile);  
  
        //组装请求对象  
        QuerySendDetailsRequest request = new QuerySendDetailsRequest();  
        //必填-号码  
        request.setPhoneNumber("");  
        //可选-流水号  
        request.setBizId(bizId);  
        //必填-发送日期 支持30天内记录查询,格式yyyyMMdd  
        SimpleDateFormat ft = new SimpleDateFormat("yyyyMMdd");  
        request.setSendDate(ft.format(new Date()));  
        //必填-页大小  
        request.setPageSize(10L);  
        //必填-当前页码从1开始计数  
        request.setCurrentPage(1L);  
  
        //hint 此处可能会抛出异常,注意catch  
        QuerySendDetailsResponse querySendDetailsResponse = acsClient.getAcsResponse(request);  
       return querySendDetailsResponse;  
    }  
      
      
      
    public static void main(String[] args) throws ClientException, InterruptedException {  
  
        //发短信  
        SendSmsResponse response = sendSms();  
          
        Thread.sleep(3000L);  
  
        //查明细  
        if(response.getCode() != null && response.getCode().equals("OK")) {  
            System.out.println("请求成功");  
            QuerySendDetailsResponse querySendDetailsResponse = querySendDetails(response.getBizId());  
            System.out.println("短信明细查询接口返回数据----------------");  
            System.out.println("Code=" + querySendDetailsResponse.getCode());  
            System.out.println("Message=" + querySendDetailsResponse.getMessage());  
            int i = 0;  
            for(QuerySendDetailsResponse.SmsSendDetailDTO smsSendDetailDTO : querySendDetailsResponse.getSmsSendDetailDTOs())  
            {  
                System.out.println("SmsSendDetailDTO["+i+"]:");  
                System.out.println("Content=" + smsSendDetailDTO.getContent());  
                System.out.println("ErrCode=" + smsSendDetailDTO.getErrCode());  
                System.out.println("OutId=" + smsSendDetailDTO.getOutId());  
                System.out.println("PhoneNum=" + smsSendDetailDTO.getPhoneNum());  
                System.out.println("ReceiveDate=" + smsSendDetailDTO.getReceiveDate());  
                System.out.println("SendDate=" + smsSendDetailDTO.getSendDate());  
                System.out.println("SendStatus=" + smsSendDetailDTO.getSendStatus());  
                System.out.println("Template=" + smsSendDetailDTO.getTemplateCode());  
            }  
            System.out.println("TotalCount=" + querySendDetailsResponse.getTotalCount());  
            System.out.println("RequestId=" + querySendDetailsResponse.getRequestId());  
        }  
  
    }  
}

需要的依赖:

<!-- 阿里云短信服务  -->  
		<dependency>  
		    <groupId>com.aliyun</groupId>  
		    <artifactId>aliyun-java-sdk-core</artifactId>  
		    <version>2.4.2</version>  
		</dependency>  
		<dependency>
			<groupId>com.aliyun</groupId>
			<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
			<version>1.1.0</version>
		</dependency>
		<dependency>  
		    <groupId>com.aliyun</groupId>  
		    <artifactId>aliyun-java-sdk-sms</artifactId>  
		    <version>3.0.0-rc1</version>  
		</dependency>  

在阿里云上的操作:

1.登陆阿里云>产品与服务>云通信>短信服务

2.短信服务中有接口管理,签名管理,模板管理

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值