本文为您介绍如何通过阿里云OpenAPI开发者门户或阿里云SDK调用短信服务,实现短信发送、查询等核心功能。
准备工作
在开始接入前,请确保您已完成以下准备工作:
注册账号并完成企业实名认证:阿里云短信服务目前仅支持企业认证账号使用,如果您未注册阿里云账号,请先完成注册账号和企业实名认证。
开通短信服务:登录短信服务控制台,根据提示开通短信服务。
购买短信服务资源包:阿里云国际站短信服务默认采用短信资源包付费模式,您需要先购买资源包再继续后续步骤。
配置编译运行环境:主要分为创建RAM用户并授权和配置阿里云访问密钥(AccessKey)两步,详细操作步骤请参见配置凭证。
由于不同国家或地区当地的供应商报备及合规要求各不相同,请在短信发送前进行相关合规操作:
发往国际地区的短信,需要确认短信发送目标地是否需要报备SenderID。确认步骤及报备流程请参见SenderID报备流程。
OpenAPI开发者门户
如果您习惯交互式操作界面,或作为初次使用阿里云产品的开发者,推荐使用OpenAPI开发者门户进行接口调试。它提供可视化界面、实时响应预览和参数校验,助您快速上手。您也可以在调试页面获取多语言SDK调用示例,便于后续集成。

可通过单击API文档页调试按钮进入OpenAPI开发者门户调试页
发往国际地区和中国香港、中国澳门和中国台湾地区
调用SendMessageToGlobe接口,发送短信到国际地区和中国香港、中国澳门和中国台湾地区。
调用BatchSendMessageToGlobe接口,批量发送短信到国际地区和中国香港、中国澳门和中国台湾地区。
调用QueryMessage接口,查询短信发送状态。
发往中国大陆
调用SendMessageWithTemplate接口,发送短信到中国内地。
调用QueryMessage接口,查询短信发送状态。
集成短信SDK
SDK是最易于集成,且支持度最好的OpenAPI调用方式。本文将以Java语言为例,调用SendMessageToGlobe接口。其他编程语言SDK,请参见SDK参考。
检查Java环境:您的Java版本需高于Java 8。Java环境配置的方法,请参见在Windows搭建Java开发环境。
安装SDK:通过配置Maven依赖,完成SDK的安装。
请在您的Maven项目的
pom.xml文件中,在<dependencies>标签内添加以下信息并将the-latest-version替换为最新版本号。保存后请重新加载Maven依赖。<dependency> <groupId>com.aliyun</groupId> <artifactId>dysmsapi20180501</artifactId> <!-- 请将 'the-latest-version' 替换为最新版本号:https://mvnrepository.com/artifact/com.aliyun/dysmsapi20180501 --> <version>the-latest-version</version> </dependency>代码示例:使用SDK调用发送短信API的代码示例如下,请根据注释完成参数填写。
package com.aliyun.sample; import com.aliyun.teaopenapi.models.Config; import com.aliyun.dysmsapi20180501.Client; import com.aliyun.dysmsapi20180501.models.SendMessageToGlobeRequest; import com.aliyun.dysmsapi20180501.models.SendMessageToGlobeResponse; import static com.aliyun.teautil.Common.toJSONString; public class Sample { public static Client createClient() throws Exception { Config config = new Config() // 配置 AccessKey ID,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。 .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) // 配置 AccessKey Secret,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。 .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); // 配置 Endpoint config.endpoint = "dysmsapi.ap-southeast-1.aliyuncs.com"; return new Client(config); } public static void main(String[] args) throws Exception { // 初始化请求客户端 Client client = Sample.createClient(); // 构造请求对象,请填入请求参数值 SendMessageToGlobeRequest sendSmsRequest = new SendMessageToGlobeRequest() .setTo("<YOUR_VALUE>") .setMessage("<YOUR_VALUE>"); // 获取响应对象 SendMessageToGlobeResponse sendSmsResponse = client.sendMessageToGlobe(sendSmsRequest); // 响应包含服务端响应的 body 和 headers System.out.println(toJSONString(sendSmsResponse)); } }您也可以下载示例代码,直接运行。
在左侧的参数配置页签,填写需要的参数信息。
在右侧的SDK示例页签,SDK版本选择v2.0,语言选择Java语言,单击下载完整工程按钮,下载示例代码包。
解压后使用IDE加载项目,待相关依赖加载完毕后,打开
src/main/java/com/aliyun/sample/Sample.java。
返回示例:项目运行后可查看到输出,本示例中的返回内容如下。
{ "headers": { "date": "Tue, 24 Oct 2023 07:47:17 GMT", "content-type": "application/json;charset=utf-8", "content-length": "263", "connection": "keep-alive", "keep-alive": "timeout=25", "access-control-allow-origin": "*", "access-control-expose-headers": "*", "x-acs-request-id": "97B1D7B6-F2F6-3A50-97BC-A90B43EC962F", "x-acs-trace-id": "29c11fe4c778b74774d5f5602f0e7975", "etag": "2a+mcDRTDkXqx9VF7b6U57Q3" }, "statusCode": 200, "body": { "ResponseCode": "OK", "NumberDetail": { "Region": "Taiwan", "Country": "Taiwan, Province of China", "Carrier": "FarEasTone" }, "RequestId": "97B1D7B6-F2F6-3A50-97BC-A90B43EC962F", "Segments": "1", "ResponseDescription": "OK", "To": "88691567****", "MessageId": "191921698133637273" } }
回执消息
短信发送后,通过配置MNS消息队列消费模式和HTTP批量推送模式,可以接收短信发送状态的结果和用户回复的短信内容,帮助您掌握短信的发送成功率,为其他业务提供支持。
更多信息,请参见回执消息简介与配置流程。
相关文档
视频教程
国际短信服务开通视频教程