java集成短信服务

557 阅读3分钟

本文介绍java系统如何集成阿里云短信服务

直接上代码

添加maven依赖SDK

<dependency>           

            <groupId>com.aliyun</groupId> 

            <artifactId>aliyun-java-sdk-dysmsapi</artifactId>          

            <version>2.1.0</version>

</dependency>

<dependency>

           <groupId>com.aliyun</groupId>

           <artifactId>aliyun-java-sdk-core</artifactId>

           <version>4.1.0</version>

</dependency>

具体代码

package com.test.ali;

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 SmsUtil {

    /**
     * 短信发送(可以一次请求向多个不同的手机号发送
     * 同样的内容)
     * @param accessKeyId akID
     * @param accessSecret ak密钥
     * @param phoneNumber 手机号码(如果为多个手机号用英文逗号隔开如:18600000000,18600000001)
     * @param signName 短信签名名称
     * @param templateCode 短信签名模版
     * @param templateParam 短信模版变量对应的实际值
     */
    public static void sendSms(String accessKeyId, String accessSecret,
                               String phoneNumber, String signName,
                               String templateCode, String templateParam) {

        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessSecret);
        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", phoneNumber);
        request.putQueryParameter("SignName", signName);
        request.putQueryParameter("TemplateCode", templateCode);
        request.putQueryParameter("TemplateParam", templateParam);
        try {
            CommonResponse response = client.getCommonResponse(request);
            String result = response.getData();//返回发送状态

            System.out.println(result);
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }

    /**
     * 查看短信发送记录和发送状态
     * @param accessKeyId akID
     * @param accessSecret ak密钥
     * @param phoneNumber 手机号码
     * @param sendDate 查询日期 yyyyMMdd
     * @param pageSize 每页记录数
     * @param currentPage 第几页
     */
    public static void querySmsSendDetails(String accessKeyId, String accessSecret,
                                           String phoneNumber, String sendDate,
                                           String pageSize, String currentPage) {

        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessSecret);
        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("QuerySendDetails");
        request.putQueryParameter("RegionId", "cn-hangzhou");
        request.putQueryParameter("PhoneNumber", phoneNumber);
        request.putQueryParameter("SendDate", sendDate);
        request.putQueryParameter("PageSize", pageSize);
        request.putQueryParameter("CurrentPage", currentPage);
        try {
            CommonResponse response = client.getCommonResponse(request);
            String result = response.getData();
            //TODO 对结果数据进行处理或者返回

            System.out.println(request);
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }


    public static void main(String args[]) {
        SmsUtil.sendSms("你的accessKeyId",
                "你的accessSecret",
                "要发送的手机号码",
                "短信签名名称",
                "短信签名模版",
                "短信模版变量对应值
如:{\"code\":666666}");
    }
}

##(注意下面五个步骤必须确保完成,以上代码才可以进行调用!!!)

1.获得阿里云2000元产品通用代金券

2.实名认证,使用阿里云产品时必须要进行实名认证

2.1.个人实名认证

有两种方式,通过个人支付宝或者阿里云app

image

2.2.企业实名认证

阿里云企业实名认证可以通过四种途径:

a.通过企业支付宝授权认证。

b.通过企业法人支付宝授权认证。

c.通过企业法人扫脸认证。

d.通过企业银行打款方式认证

image

3.购买阿里云短信套餐包

image

4.申请短信签名以及短信模版

短信签名是短信发送方的身份,短信模版是短信的内容:

image

4.1.免费开通短信服务

4.2.添加签名

image

4.3.添加模版

image

短信签名和短信模版审核会很快。

5.创建AccessKey

5.1.新建用户

image

5.2.记住如下展示AccessKey相关信息

务必要记住下图中的accsessKeyId以及accessKeySecret,可以点击列表

上方下载CSV文件进行下载保存

image

5.3.给新建用户赋予短信相关权限

点击上图添加权限按钮给用户赋予短信相关权限

image