阿里云短信服务Java SDK调用指南.md 4.6 KB

阿里云短信服务 Java SDK 调用指南

前置准备

步骤 说明 参考链接
1. 查看 API 文档 了解 SendSms 接口参数 SendSms API
2. 创建 RAM 用户 建议使用 RAM 用户而非主账号 RAM 用户概览
3. 创建 AccessKey 获取 AccessKey ID 和 Secret 创建访问密钥

环境配置

Java 版本要求

  • Java 8 或更高版本

Maven 依赖

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>dysmsapi20170525</artifactId>
    <version>the-latest-version</version>
</dependency>

最新版本号:https://mvnrepository.com/artifact/com.aliyun/dysmsapi20170525

环境变量配置

环境变量名 说明 示例值
ALIBABA_CLOUD_ACCESS_KEY_ID AccessKey ID LTAI5t...
ALIBABA_CLOUD_ACCESS_KEY_SECRET AccessKey Secret xxx...

配置方法:Linux/macOS/Windows 环境变量配置

代码示例

package com.aliyun.sample;

import com.aliyun.teaopenapi.models.Config;
import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
import static com.aliyun.teautil.Common.toJSONString;

public class Sample {
    public static Client createClient() throws Exception {
        Config config = new Config()
            // 从环境变量读取 AccessKey ID
            .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
            // 从环境变量读取 AccessKey Secret
            .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        
        // 配置 Endpoint
        config.endpoint = "dysmsapi.aliyuncs.com";
        
        return new Client(config);
    }

    public static void main(String[] args) throws Exception {
        // 初始化客户端
        Client client = Sample.createClient();
        
        // 构造请求对象
        SendSmsRequest sendSmsRequest = new SendSmsRequest()
            .setPhoneNumbers("1390000****")           // 接收短信的手机号
            .setSignName("阿里云")                      // 短信签名
            .setTemplateCode("SMS_15305****")          // 短信模板代码
            .setTemplateParam("{\"name\":\"张三\",\"number\":\"1390000****\"}"); // 模板参数(JSON 字符串)
        
        // 发送短信
        SendSmsResponse sendSmsResponse = client.sendSms(sendSmsRequest);
        
        // 输出响应
        System.out.println(toJSONString(sendSmsResponse));
    }
}

请求参数说明

参数 类型 必填 说明
PhoneNumbers String 是 接收短信的手机号,多个号码用逗号分隔
SignName String 是 短信签名,需在控制台审核通过
TemplateCode String 是 短信模板代码,需在控制台审核通过
TemplateParam String 否 模板参数,JSON 格式字符串

响应格式

{
  "headers": {
    "x-acs-request-id": "F59B3F78-D9CD-5D01-A9CC-AE5C921ED9C0",
    "content-type": "application/json;charset=utf-8"
  },
  "statusCode": 200,
  "body": {
    "bizId": "695425589610909881^0",
    "code": "OK",
    "message": "OK",
    "requestId": "F59B3F78-D9CD-5D01-A9CC-AE5C921ED9C0"
  }
}

响应字段说明

字段 类型 说明
bizId String 业务流水号,用于查询发送状态
code String 状态码,OK 表示成功
message String 状态描述
requestId String 请求 ID,用于问题排查

注意事项

  1. 安全建议:使用环境变量存储 AccessKey,避免硬编码
  2. RAM 用户:建议使用 RAM 用户而非主账号进行 API 调用
  3. 签名和模板:需在阿里云控制台提前申请并审核通过
  4. 模板参数:必须是有效的 JSON 字符串,参数名需与模板中的变量名一致

相关链接