阿里大鱼进行发短信业务---使用详细步骤-Java操作
文章目录
- 前言
- 一、开通短信服务
- 二、快速学习
- 三、签名管理
- 1. 何为签名
- 2. 添加签名
- 四、模板管理
- 1. 何为模板
- 2. 添加模板
- 五、Java中使用阿里大鱼
- 1. 开发文档
- 2. 用到的依赖
- 3. 开发前注意的点
- 4. 自己的开发案例
前言
- 阿里大于(原阿里大鱼)是阿里通信旗下产品,融合了三大运营商的通信能力。
- 阿里大于提供包括短信、语音、流量直充、私密专线、店铺手机号等个性化服务。
短信服务(Short Message Service)
是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码、短信通知等。 三网合一专属通道,与工信部携号转网平台实时互联。电信级运维保障,实时监控自动切换,到达率高达99%。- 短信服务API提供短信发送、发送状态查询、短信批量发送等能力,在短信服务控制台上添加签名、模板并通过审核之后,可以调用短信服务API完成短信发送等操作。
一、开通短信服务
- 步骤一
- 步骤二:
- 步骤三:
- 步骤四:登录
- 步骤五:开通
- 步骤六:激活,有的需要有的不需要,我这里不需要,因为以前办理过阿里云业务
- 步骤七:充钱,一点点就好了,一条短信0.045
二、快速学习
最主要的是左边的侧边栏,都浏览一下,学习一下。
三、签名管理
1. 何为签名
你收到的垃圾短信中,或者验证码短信中的开头
2. 添加签名
需要两小时的审核
四、模板管理
1. 何为模板
就是短信内容
2. 添加模板
需要两小时的审核
五、Java中使用阿里大鱼
1. 开发文档
- 开发api文档:进入开发api文档
- 官方demo演示:demo
2. 用到的依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.feng.alidayu</groupId><artifactId>alidayu-sendMessage</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>3.2.3</version></dependency><!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-dysmsapi --><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-dysmsapi</artifactId><version>2.1.0</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.29</version></dependency><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-commons</artifactId><version>2.0.0.RELEASE</version></dependency></dependencies>
</project>
3. 开发前注意的点
- 申请签名和模块,要求挺多,需要两小时。
- 需要申请 AccessKey , 可以在开发文档中
API参考
中AccessKey
文章中根据流程申请 - 申请之后还需要为 AccessKey 进行 赋予 权限 ``
4. 自己的开发案例
里面有的类不再编写,
package com.feng.alidayu;import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import org.springframework.util.StringUtils;public class SendMessage {/*** 发送短信服务的参数* accessKeyId 阿里云AK* accessKeySecret 阿里云SK* product 云通信短信API产品* domain 产品域名*///初始化ascClient需要的几个参数static final String product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改)static final String domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改)//替换成你的AKstatic final String accessKeyId = "yourAccessKeyId";//你的accessKeyId,参考本文档步骤2LTAI4GCRrneGRQfmX78mxKzmstatic final String accessKeySecret = "yourAccessKeySecret";//你的accessKeySecret,参考本文档步骤 2WOjZlJVfOH4oOnCjPqasvlhq7UbmTK1public static void main(String[] args) {// 发送短信sendSms();}/*** 普通发送短信验证码接口*/public static void sendSms() {String IP = "";String method = "selectsms";try {//设置超时时间-可自行调整System.setProperty("sun.net.client.defaultConnectTimeout", "10000");System.setProperty("sun.net.client.defaultReadTimeout", "10000");//初始化ascClient,暂时不支持多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();//使用post提交request.setMethod(MethodType.POST);//必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为国际区号+号码,如“85200000000”request.setPhoneNumbers("1500000000");//必填:短信签名-可在短信控制台中找到request.setSignName("云通信");//必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版request.setTemplateCode("SMS_1000000");//向数据库中插入数据// SmsActivationModel smsActivationModel = new SmsActivationModel();//设置验证码// smsActivationModel.setVerificationCode(sixValCode);//设置入库时间// smsActivationModel.setRecordTime(new Date());//设置用户手机号// smsActivationModel.setUserCode(phoneNo);//可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为//友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败//参考:request.setTemplateParam("{\"变量1\":\"值1\",\"变量2\":\"值2\",\"变量3\":\"值3\"}")request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}");//可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)//request.setSmsUpExtendCode("90997");//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者request.setOutId("yourOutId");//请求失败这里会抛ClientException异常SendSmsResponse sendSmsResponse = null;sendSmsResponse = acsClient.getAcsResponse(request);if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {// 请求成功// int i = smsActivationService.insertSmsActivationModel(smsActivationModel);}} catch (ClientException e) {System.out.println("ResponseCode.SYSTEM_REQ_FAIL: 短信服务系统参数错误");} catch (ClassCastException e) {//请求参数格式错误System.out.println("ResponseCode.SYSTEM_REQ_FAIL: 请求参数格式错误");} catch (NumberFormatException e) {System.out.println("ResponseCode.SYSTEM_REQ_FAIL: 请求参数格式错误");} catch (Exception e) {//系统未知异常System.out.println("ResponseCode.SYSTEM_REQ_FAIL: 短信服务系统参数错误");}}/*** 注册时使用* * @param data* @return*/public static void regselectsms(JSONObject data) {String IP = "";String method = "regselectsms";try {String phoneNo = (String) data.get("phoneNo");if (!StringUtils.isEmpty(phoneNo)) {//检验手机号是否正确String MPHONE_REGEX = "(\\+\\d+)?1[123456780]\\d{9}$";if(!phoneNo.matches(MPHONE_REGEX)){System.out.println("手机号输入错误");;}//判断用户是否存在 userbaseService 用户业务类,此处不再创建if(userbaseService.selectUserbaseByPhone(phoneNo) != null){System.out.println("用户不存在");;}//判断时间60秒内不能重复请求 smsActivationService 信息时间验证类,此处不再创建if (smsActivationService.valTimeOut(phoneNo)) {System.out.println("60s内重复请求短信服务");}//自助调整超时时间System.setProperty("sun.net.client.defaultConnectTimeout", "300000");System.setProperty("sun.net.client.defaultReadTimeout", "300000");//初始化acsClient,暂不支持region化IClientProfile profile = DefaultProfile.getProfile("cn-beijing", accessKeyId, accessKeySecret);DefaultProfile.addEndpoint("cn-beijing", "cn-beijing", product, domain);IAcsClient acsClient = new DefaultAcsClient(profile);//组装请求对象SendSmsRequest request = new SendSmsRequest();//待发送手机号request.setPhoneNumbers(phoneNo);//短信签名-可在短信控制台中找到request.setSignName("企通查");//短信模板-可在短信控制台中找到request.setTemplateCode("SMS_121146507");//模板中的变量替换JSON串,如模板内容为"您的验证码为${code}"时,此处的值为String sixValCode = CodeUtil.getSixValCode();//向数据库中插入数据// SmsActivationModel smsActivationModel = new SmsActivationModel();//设置验证码// smsActivationModel.setVerificationCode(sixValCode);//设置入库时间// smsActivationModel.setRecordTime(new Date());//设置用户手机号// smsActivationModel.setUserCode(phoneNo);request.setTemplateParam("{\"code\":\"" + sixValCode + "\"}");//此处可能会抛出异常,注意catch//发短信SendSmsResponse response = acsClient.getAcsResponse(request);if (!"OK".equals(response.getCode())) {//短信发送失败System.out.println("短信发送失败");}// int i = smsActivationService.insertSmsActivationModel(smsActivationModel);} else {//缺少参数System.out.println("手机号不能为空");;}} catch (ClientException e) {System.out.println("短信服务系统参数错误");} catch (ClassCastException e) {//请求参数格式错误System.out.println("请求参数格式错误");} catch (NumberFormatException e) {System.out.println("请求参数格式错误");} catch (Exception e) {//系统未知异常System.out.println("请求参数格式错误");}}
}
阿里大鱼进行发短信业务---使用详细步骤-Java操作相关推荐
- 阿里短信服务 php实例,阿里大鱼发送sms 短信 php demo示例
最近项目中考虑使用阿里大鱼的sms短信发送服务,不过,在找到阿里大鱼php sdk的 时候,尼玛,问题来了! 我就想用个短信而已啊....竟然给我打包了好多 什么httpdns 什么kfcsearch ...
- 阿里大鱼php发送短信,阿里大鱼短信发送PHP代码
首先 请下载阿里大鱼的SDK短信代码 选择PHP版本的 然后应用如下代码即可 import("@.ORG.alidayu.TopSdk","",". ...
- 关于定时发短信业务的讨论
关于定时发短信业务的讨论 事情的起因 需求:在每次线下活动的开始的前一天晚上七点给报名参加价值研习社的用户发一条通知短信用户记得准时参加活动. 备注:因为我们的业务并发不是很大,所以很多场景并没有考虑 ...
- 利用阿里大于接口发短信(Delphi版)
阿里大于是阿里通信旗下产品,融合了三大运营商的通信能力,提供包括短信.语音.流量直充.私密专线.店铺手机号等个性化服务.每条四分五,价钱还算公道,经老农测试,响应速度非常快,基本上是秒到.官方文档提供 ...
- WEB后台--邮件和短信业务实现(包括Java一键实现、封装和异步)以及原理详解
本来就打算针对一些固定的特别点的业务(QQ与网易邮件.拦截设计.短信.定时器等等)来进行记录以及解析原理,这些会比较零散记录在JavaWeb的分类里面,感兴趣的童鞋可以去看下. 有人问为什么要邮件短信 ...
- 秒懂云通信:如何用阿里云平台发短信?
1.阿里云短信官网在哪里.业务怎么开通? 搜索引擎搜"阿里云"或者直接录入alicloud.com后选择"短信服务". 阿里云短信服务,第一次或者未登录都可以点 ...
- 阿里大鱼 php sdk,短信服务:将阿里大鱼整合到ThinkPHP3.2,并使用
1.入驻阿里大鱼: 1.1 进入官网,先登录 1.2 入驻阿里大鱼 接下来是配置短信模板,和创建应用,要先创建应用才可以下载SDK. 创建应用: 1.3下载SDK: 创建应用成功后,点红色框 另外还有 ...
- 阿里大鱼异步发送短信
pom引用 <!--阿里大鱼--><dependency><groupId>com.aliyun</groupId><artifactId> ...
- Java使用阿里大鱼实现发送短信
获取 AccessKey ID 和 Access Key Secret 获取 签名名称 和 模版CODE 阿里云官网 如何使用? 1.首先导报 <dependency><groupI ...
最新文章
- 目标检测算法Faster R-CNN简介
- fatal error: Python.h: No such file or directory 解决
- linux deepin使用FFmpeg处理视频格式、尺寸、播放速度
- Java开发环境变量配置【java1.8安装及环境变量详细配置】【JAVA_HOME系统变量、CLASSPATH系统变量、系统环境变量Path】
- Hadoop异常 hdfs.DFSClient: DataStreamer
- python面试题_17道Python面试题,分享给你以防不测!
- 如何使用Java,Maven,Jetty创建Web应用程序项目
- curl 怎么在xp下使用_Http Post 快速使用
- nginx的反向代理和负载均衡的区别
- C#中IL反汇编工具的使用 其具体含义如下文
- 最大公约数(欧几里得算法)
- 【java】输入输出流
- java运行环境配置实验报告_java程序开发运行环境实验报告.doc
- mysql英文版怎么调中文_navicat for mysql怎么设置中文
- hdu 2079 - 选课时间
- 创客教育中常见的视觉识别摄像头介绍
- 二、Contiki移植
- 漫画:什么是蓝绿部署?
- 让理科生沉默,让文科生流泪的综合题详解
- 逻辑回归与softmax回归