接口文档
步骤
- 配置短信签名
- 申请短信模板
- 下载相关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">&&</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版权协议,转载请附上原文出处链接和本声明。

