有关java接入阿里云短信服务详细流程

接口文档

步骤

  1. 配置短信签名
  2. 申请短信模板
  3. 下载相关sdk文件包

一、配置签名

——登录阿里云,点击产品与服务,在云通信中找到短信服务。
在这里插入图片描述
在这里插入图片描述

二、配置短信模板

在这里插入图片描述

三、下载相关sdk文件

sdk下载地址入口:
https://help.aliyun.com/document_detail/55359.html?spm=5176.11065259.1996646101.searchclickresult.d0a31a71oq0HYi

sdk的目录清单
api_demo(短信服务API接口调用DEMO工程)——提供了相关的短信的demo,可以通过修改相关的属性,直接使用。
api_sdk(短信服务API接口依赖的SDK)——提供了相关的jar包和maven坐标等。
msg_demo(短信回执消息的DEMO)
msg_sdk(短信回执消息的SDK)

四、自定义短信方式

1、引入相关的jar包或者maven

<span style="color:rgba(0, 0, 0, 0.75)"><span style="background-color:#ffffff"><span style="color:#000000"><code class="language-xml"><span style="color:#cc6666"><span style="color:#cc6666"><span style="color:#999999"><</span>dependency</span><span style="color:#999999">></span></span>
  <span style="color:#cc6666"><span style="color:#cc6666"><span style="color:#999999"><</span>groupId</span><span style="color:#999999">></span></span>com.aliyun<span style="color:#cc6666"><span style="color:#cc6666"><span style="color:#999999"></</span>groupId</span><span style="color:#999999">></span></span>
  <span style="color:#cc6666"><span style="color:#cc6666"><span style="color:#999999"><</span>artifactId</span><span style="color:#999999">></span></span>aliyun-java-sdk-core<span style="color:#cc6666"><span style="color:#cc6666"><span style="color:#999999"></</span>artifactId</span><span style="color:#999999">></span></span>
  <span style="color:#cc6666"><span style="color:#cc6666"><span style="color:#999999"><</span>version</span><span style="color:#999999">></span></span>4.0.6<span style="color:#cc6666"><span style="color:#cc6666"><span style="color:#999999"></</span>version</span><span style="color:#999999">></span></span> <span style="color:#969896"><!-- 注:如提示报错,先升级基础包版,无法解决可联系技术支持 --></span>
<span style="color:#cc6666"><span style="color:#cc6666"><span style="color:#999999"></</span>dependency</span><span style="color:#999999">></span></span>
</code></span></span></span>

<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>1.1.0</version>
</dependency>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

2、具体实现

<span style="color:rgba(0, 0, 0, 0.75)"><span style="background-color:#ffffff"><span style="color:#000000"><code class="language-java"><span style="color:#c678dd">public</span> <span style="color:#c678dd">class</span> SendSms <span style="color:#999999">{</span>
	<span style="color:#c678dd">public</span> <span style="color:#c678dd">static</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">sendAliyun</span><span style="color:#999999">(</span>String merchantName<span style="color:#999999">,</span>String phone<span style="color:#999999">,</span>String money<span style="color:#999999">)</span> <span style="color:#999999">{</span>
		<span style="color:#c678dd">try</span> <span style="color:#999999">{</span>
			<span style="color:#5c6370">// 设置超时时间-可自行调整</span>
			System<span style="color:#999999">.</span><span style="color:#61aeee">setProperty</span><span style="color:#999999">(</span><span style="color:#669900">"sun.net.client.defaultConnectTimeout"</span><span style="color:#999999">,</span> <span style="color:#669900">"10000"</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
			System<span style="color:#999999">.</span><span style="color:#61aeee">setProperty</span><span style="color:#999999">(</span><span style="color:#669900">"sun.net.client.defaultReadTimeout"</span><span style="color:#999999">,</span> <span style="color:#669900">"10000"</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
			<span style="color:#5c6370">// 初始化ascClient需要的几个参数</span>
			<span style="color:#c678dd">final</span> String product <span style="color:#669900">=</span> <span style="color:#669900">"Dysmsapi"</span><span style="color:#999999">;</span><span style="color:#5c6370">// 短信API产品名称(短信产品名固定,无需修改)</span>
			<span style="color:#c678dd">final</span> String domain <span style="color:#669900">=</span> <span style="color:#669900">"dysmsapi.aliyuncs.com"</span><span style="color:#999999">;</span><span style="color:#5c6370">// 短信API产品域名(接口地址固定,无需修改)</span>
			<span style="color:#5c6370">// 替换成你的AK</span>
			<span style="color:#c678dd">final</span> String accessKeyId <span style="color:#669900">=</span> <span style="color:#669900">"LtAIY25ciEK660jh"</span><span style="color:#999999">;</span><span style="color:#5c6370">// 你的accessKeyId,参考本文档步骤2</span>
			<span style="color:#c678dd">final</span> String accessKeySecret <span style="color:#669900">=</span> <span style="color:#669900">"NI3WlwvUU5vPD4BUszHaMNsWBGhF8S"</span><span style="color:#999999">;</span><span style="color:#5c6370">// 你的accessKeySecret,参考本文档步骤2</span>
			<span style="color:#5c6370">// 初始化ascClient,暂时不支持多region(请勿修改)</span>
			IClientProfile profile <span style="color:#669900">=</span> DefaultProfile<span style="color:#999999">.</span><span style="color:#61aeee">getProfile</span><span style="color:#999999">(</span><span style="color:#669900">"cn-hangzhou"</span><span style="color:#999999">,</span> accessKeyId<span style="color:#999999">,</span> accessKeySecret<span style="color:#999999">)</span><span style="color:#999999">;</span>
			DefaultProfile<span style="color:#999999">.</span><span style="color:#61aeee">addEndpoint</span><span style="color:#999999">(</span><span style="color:#669900">"cn-hangzhou"</span><span style="color:#999999">,</span> <span style="color:#669900">"cn-hangzhou"</span><span style="color:#999999">,</span> product<span style="color:#999999">,</span> domain<span style="color:#999999">)</span><span style="color:#999999">;</span>
			IAcsClient acsClient <span style="color:#669900">=</span> <span style="color:#c678dd">new</span> DefaultAcsClient<span style="color:#999999">(</span>profile<span style="color:#999999">)</span><span style="color:#999999">;</span>
			<span style="color:#5c6370">// 组装请求对象</span>
			SendSmsRequest request <span style="color:#669900">=</span> <span style="color:#c678dd">new</span> SendSmsRequest<span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
			<span style="color:#5c6370">// 使用post提交</span>
			request<span style="color:#999999">.</span><span style="color:#61aeee">setMethod</span><span style="color:#999999">(</span>MethodType<span style="color:#999999">.</span>POST<span style="color:#999999">)</span><span style="color:#999999">;</span>
			<span style="color:#5c6370">// 必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式</span>
			request<span style="color:#999999">.</span><span style="color:#61aeee">setPhoneNumbers</span><span style="color:#999999">(</span>phone<span style="color:#999999">)</span><span style="color:#999999">;</span>
			<span style="color:#5c6370">// 必填:短信签名-可在短信控制台中找到</span>
			request<span style="color:#999999">.</span><span style="color:#61aeee">setSignName</span><span style="color:#999999">(</span><span style="color:#669900">"xxx"</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
			<span style="color:#5c6370">// 必填:短信模板-可在短信控制台中找到</span>
			request<span style="color:#999999">.</span><span style="color:#61aeee">setTemplateCode</span><span style="color:#999999">(</span><span style="color:#669900">"SMS_178823227"</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
			<span style="color:#5c6370">// 可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为</span>
			<span style="color:#5c6370">// 友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败</span>
			SimpleDateFormat format<span style="color:#669900">=</span><span style="color:#c678dd">new</span> SimpleDateFormat<span style="color:#999999">(</span><span style="color:#669900">"yyyy年MM月dd日 HH:mm"</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
			String time<span style="color:#669900">=</span>format<span style="color:#999999">.</span><span style="color:#61aeee">format</span><span style="color:#999999">(</span><span style="color:#c678dd">new</span> Date<span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
			request<span style="color:#999999">.</span><span style="color:#61aeee">setTemplateParam</span><span style="color:#999999">(</span><span style="color:#669900">"{\"name\":\""</span><span style="color:#669900">+</span>merchantName<span style="color:#669900">+</span><span style="color:#669900">"\", \"time\":\""</span><span style="color:#669900">+</span>time<span style="color:#669900">+</span><span style="color:#669900">"\",\"money\":\""</span><span style="color:#669900">+</span>money<span style="color:#669900">+</span><span style="color:#669900">"\"}"</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
</code></span></span></span>
<span class="token comment">// 请求失败这里会抛ClientException异常</span> SendSmsResponse sendSmsResponse <span class="token operator">=</span> acsClient<span class="token punctuation">.</span><span class="token function">getAcsResponse</span><span class="token punctuation">(</span>request<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>sendSmsResponse<span class="token punctuation">.</span><span class="token function">getCode</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">!=</span> null <span class="token operator">&amp;&amp;</span> sendSmsResponse<span class="token punctuation">.</span><span class="token function">getCode</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">equals</span><span class="token punctuation">(</span><span class="token string">"OK"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span> <span class="token comment">// 请求成功</span> System<span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">"短信发送成功!!!,余额为:"</span><span class="token operator">+</span>money<span class="token operator">+</span><span class="token string">",BizId:"</span><span class="token operator">+</span>sendSmsResponse<span class="token punctuation">.</span><span class="token function">getBizId</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">",Code:"</span><span class="token operator">+</span>sendSmsResponse<span class="token punctuation">.</span><span class="token function">getCode</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">+</span> <span class="token string">",Message:"</span><span class="token operator">+</span>sendSmsResponse<span class="token punctuation">.</span><span class="token function">getMessage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">",RequestId:"</span><span class="token operator">+</span>sendSmsResponse<span class="token punctuation">.</span><span class="token function">getRequestId</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">catch</span> <span class="token punctuation">(</span><span class="token class-name">Exception</span> e<span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span> e<span class="token punctuation">.</span><span class="token function">printStackTrace</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> 

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

3、测试

<span style="color:rgba(0, 0, 0, 0.75)"><span style="background-color:#ffffff"><span style="color:#000000"><code class="language-java"><span style="color:#c678dd">public</span> <span style="color:#c678dd">static</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">main</span><span style="color:#999999">(</span>String<span style="color:#999999">[</span><span style="color:#999999">]</span> args<span style="color:#999999">)</span> <span style="color:#999999">{</span>
	SendSms<span style="color:#999999">.</span><span style="color:#61aeee">send</span><span style="color:#999999">(</span><span style="color:#669900">"xxx"</span><span style="color:#999999">,</span><span style="color:#669900">"15279206000"</span><span style="color:#999999">,</span> <span style="color:#669900">"99.99"</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
<span style="color:#999999">}</span>
</code></span></span></span>
  • 1
  • 2
  • 3

4、效果

<span style="color:rgba(0, 0, 0, 0.75)"><span style="background-color:#ffffff"><span style="color:#000000"><code class="language-java">【xxx】温馨提示:尊敬的xxx客户,截止到<span style="color:#98c379">2020</span>年<span style="color:#98c379">12</span>月<span style="color:#98c379">04</span>日 <span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">37</span>,您的充电账户余额为<span style="color:#98c379">99.99</span>元。请您及时交费,以免余额不足时影响您的正常使用。
</code></span></span></span>
  • 1

写作不易,既然来了,不妨点个关注,点个赞吧!!!

云服务器搭载业务,选择合适的平台最重要!

从目前国内云计算市场的格局来看,国内云计算前三强分别是阿里云、腾讯云和华为云,阿里云、腾讯云作为背靠互联网平台的企业,更偏向于B端用户;华为与作为传统的通信巨头,更偏向于G端。

当然如何选择服务器机型,这里有篇文档汇总的比较详细,文档地址:

如果是高并发,高IO业务场景,需要确定服务器规格,可让业务应用性能发挥到最佳,参考官方文档:

阿里云服务器规格:规格实例族 - 云服务器 ECS

腾讯云服务器规格:规格实例族 - 云服务器CVM


版权声明:本文为m0_64093008原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。