阿里云短信接口官方文档介绍的很详细

申请地址:https://www.aliyun.com/product/sms

接入流程、文档、sdk下载:https://help.aliyun.com/product/44282.html

这里我给出两种方式,web项目和maven项目

一、web项目

这种方式比较容易,直接把包导入项目中就行了,

代码如下

package com.mtgg;import java.text.SimpleDateFormat;
import java.util.Date;import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsResponse;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;public class SmsDemo {//产品名称:云通信短信API产品,开发者无需替换static final String product="Dysmsapi";//产品域名,开发者无需替换static final String domain = "dysmsapi.aliyuncs.com";// TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找),下面举个例子static final String accessKeyId = "LTAIIwvyVeREB";   static final String accessKeySecret = "g3EwarlgO9JE6j5pylO25e";public static SendSmsResponse sendSms() throws ClientException{//可自助调整超时时间System.setProperty("sun.net.client.defaultConnectTimeout", "10000");System.setProperty("sun.net.client.defaultReadTimeout", "10000");//初始化acsClient,暂不支持region化IClientProfile profile=DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);IAcsClient acsClient=new DefaultAcsClient(profile);//组装请求对象-具体描述见控制台-文档部分内容SendSmsRequest request=new SendSmsRequest();//必填:待发送手机号request.setPhoneNumbers("");//必填:短信签名-可在短信控制台中找到举个例子request.setSignName("嘉华顺风");//必填:短信模板id-可在短信控制台中找到,是id不是名字,举个例子request.setTemplateCode("SMS_992005");//可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为--必填,与模板相对应//request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}");request.setTemplateParam("{\"code\":\"666666\"}");//选填-上行短信扩展码(无特殊需求用户请忽略此字段)//request.setSmsUpExtendCode("90997");//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者//request.setOutId("yourOutId");//hint 此处可能会抛出异常,注意catchSendSmsResponse sendSmsResponse=acsClient.getAcsResponse(request);return sendSmsResponse;}public static QuerySendDetailsResponse querySendDetails(String bizId) throws ServerException, ClientException{//可自助调整超时时间System.setProperty("sun.net.client.defaultConnectTimeout", "60000");System.setProperty("sun.net.client.defaultReadTimeout", "60000");//初始化acsClient,暂不支持region化IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);IAcsClient acsClient = new DefaultAcsClient(profile);//组装请求对象QuerySendDetailsRequest request = new QuerySendDetailsRequest();//必填-号码request.setPhoneNumber("");//可选-流水号request.setBizId(bizId);//必填-发送日期 支持30天内记录查询,格式yyyyMMddSimpleDateFormat ft = new SimpleDateFormat("yyyyMMdd");request.setSendDate(ft.format(new Date()));//必填-页大小request.setPageSize(10L);//必填-当前页码从1开始计数request.setCurrentPage(1L);//hint 此处可能会抛出异常,注意catchQuerySendDetailsResponse querySendDetailsResponse = acsClient.getAcsResponse(request);return querySendDetailsResponse;}public static void main(String[] args) throws ClientException, InterruptedException {//发短信SendSmsResponse response = sendSms();Thread.sleep(3000L);//查明细if(response.getCode() != null && response.getCode().equals("OK")) {System.out.println("请求成功");QuerySendDetailsResponse querySendDetailsResponse = querySendDetails(response.getBizId());System.out.println("短信明细查询接口返回数据----------------");System.out.println("Code=" + querySendDetailsResponse.getCode());System.out.println("Message=" + querySendDetailsResponse.getMessage());int i = 0;for(QuerySendDetailsResponse.SmsSendDetailDTO smsSendDetailDTO : querySendDetailsResponse.getSmsSendDetailDTOs()){System.out.println("SmsSendDetailDTO["+i+"]:");System.out.println("Content=" + smsSendDetailDTO.getContent());System.out.println("ErrCode=" + smsSendDetailDTO.getErrCode());System.out.println("OutId=" + smsSendDetailDTO.getOutId());System.out.println("PhoneNum=" + smsSendDetailDTO.getPhoneNum());System.out.println("ReceiveDate=" + smsSendDetailDTO.getReceiveDate());System.out.println("SendDate=" + smsSendDetailDTO.getSendDate());System.out.println("SendStatus=" + smsSendDetailDTO.getSendStatus());System.out.println("Template=" + smsSendDetailDTO.getTemplateCode());}System.out.println("TotalCount=" + querySendDetailsResponse.getTotalCount());System.out.println("RequestId=" + querySendDetailsResponse.getRequestId());}}
}

手机号,短信签名,短信模板我就不说了,找到放上就可以了,说一下

如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为--必填,与模板相对应
request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}");

这个模板设置要与控制台的短信模板相对应,形式如上

关于发送成功后的处理这个自己加吧

二、maven配置

maven方式虽然也不难,但是不知怎么的掉坑好久,就是出不来了,就好像1+1不等于2似的,先来依赖

我用的是idea,我把maven也设置成自己安装的了

按理来说可以了,不过

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

这个包说什么也依赖不上,1.0.0一直是红色,就开始解决,原来下载不下来,只能手动打包到maven库

把这个jar包放在d盘根目录就行,然后手动打包:

mvn install:install-file -Dfile=d:\aliyun-java-sdk-dysmsapi-1.0.0.jar -DgroupId=com.aliyun -DartifactId=aliyun-java-sdk-dysmsapi-1.0.0  -Dversion=1.0.0 -Dpackaging=jar

成功了吧,你成功了应该可以依赖了,不过我还是依赖不上,然后我一顿查一顿看,都对,依赖包也在maven库中,后来我把maven重装了好了,为什么能好呢,最大的原因应该是我把中央库设置到别的盘了,它默认是在C:\Users\Administrator\.m2\repository这个路径的,除了这个区别没发现别的原因,有大神知道可以指教一下1+1为什么不等于2,

代码和上面一样,打印结果如下

关于接口我也做了几个,接过一遍就会了,没接过最重要的就是耐心和细心,把坑跳过去就ok,祝你一遍好运

这是我的demo         http://download.csdn.net/download/goligory/10002204

阿里云短信接入及注意事项相关推荐

  1. 阿里云短信服务接入流程

    背景 在最近的项目需求中, 需要将复用阿里短信能力, 实现用户手机号验证: 如果用户号码验证通过后, 可以让用户上传文件资料并进行打印. 故核心内容就是: 阿里云短信服务接入, 下面我们主要来介绍下阿 ...

  2. python 阿里云短信服务接入流程

    阿里云短信服务接入流程 最近公司项目中的业务需求包括使用阿里云发送短信,所以写一篇博客和大家分享一下python使用sdk对接阿里云短息api的流程. 阿里云官方文档 链接 左侧导航栏中有很多部分,着 ...

  3. ThinkPHP5.1接入阿里云短信服务(原大鱼最新版)指导

    ♘背景 随着科技发展的推动,曾经充满温馨问候与回忆的短信业务,如今绝大多数局限于 验证码发送.诈骗/骚扰信息.业务推送 的使用 而作为一名IT搬砖的码农,对于第三方服务的接入也是必须掌握的技能,此处介 ...

  4. 云片短信php接口_php与阿里云短信接口接入

    使用阿里云短信API,需要在控制台获取以下必要参数,其中需要自己手机验证+官方审核多次,尤其审核需要保持耐心. 1. accessKeyId 相当于你的个人账户密钥: 2. accessKeySecr ...

  5. ThinkPHP5框架接入阿里云短信最新版(原大鱼)的方法

    下载官方SDK 第一步肯定是下载官方的SDK了,但是官方下载的SDK内容有一些多,我们不必全部都要,只将下载好的SDK文件中的api_sdk文件,改名aliyunsms,然后放入ThinkPHP5框架 ...

  6. phpyun人才招聘系统接入阿里云短信

    记一下PHP云人才招聘系统对接阿里云短信的方法 SDK下载 功能实现 调用 # SDK下载 下载官方SDK 之后将api_sdk拷贝到系统的app/public目录下,当然也可放在项目内其它位置 # ...

  7. 如何接入阿里云短信服务 (完整指南)

    目录 一.注册并实名认证 二.开通短信服务 三.获取AccessKey 四.设置短信内容 五.配置短信接口 六.发送短信 七.常见问题FAQ 一.注册并实名认证 使用阿里云短信服务,用户需要先在阿里云 ...

  8. NET接入阿里云短信服务

    Net Core+阿里云实现短信验证码 开通阿里云短信服务 首先要开通阿里云短信服务,这个不多赘述,看图 开通之后,来到管理控制台 点击国内消息-->签名管理-->添加签名 同样的步骤,模 ...

  9. 阿里云短信服务bug

    接入阿里云短信服务,在springboot中写测试方法,执行到 IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou ...

最新文章

  1. 利用CMake编译内核模块
  2. 《Java工程师成神之路》终于免费开放下载了!
  3. SDN控制器的资源收集过程—Vecloud
  4. 编码练习——Java-3-数组
  5. Android 检测是否连接蓝牙耳机
  6. 深入浅出React Native 1: 环境配置
  7. html5新增的js,HTML5新增属性data-*和js/jquery之间的交互及注意事项
  8. python黑客编程-[分享]Python黑帽子 黑客与渗透测试编程之道PDF和文章内代码【全】...
  9. linux虚拟机scsi类型,linux虚拟机的scsi设备id与盘符不一致问题的解决
  10. jquery蝴蝶飞舞网页动画js特效代码
  11. 网络远程控制原理及技术实现
  12. Golang map 并发读写问题源码分析
  13. Windows10系统设置共享文件夹和访问共享文件夹方法
  14. tomcat是干什么的? 什么叫web容器以及作用?
  15. 计算机光驱运行功能,电脑如何设置光驱位第一启动项
  16. 一个中文占多少个英文字符
  17. layui后台添加数据给php,layui怎么实现数据绑定
  18. Hydration 是什么?
  19. 计算机软件可以授予专利权吗,软件产品能申请专利吗?
  20. Markdowm编辑器推荐和Emoji 表情

热门文章

  1. 【帅琪达】IDEA自动导包和自动删包设置
  2. 计算机操作系统_银行家算法
  3. PSS/E软件学习--暂态仿真
  4. 计算机考研网校班,计算机考研网校
  5. C#将Excel文件中选择的内容,复制粘贴到 winform datagridview
  6. android app安装出现 xxx存在内容提供者冲突无法安装
  7. 免费开源的内网穿透工具,类似花生壳
  8. android 魅族4怎么升级包,魅族MX4怎么升级flyme 魅族MX4升级flyme详细教程
  9. EC中的QEvent(SCI中断)
  10. 土木工程个人简历模板范文--带具体内容