综述    

       注:本文写于2017年6月22日升级之后。

使用阿里大鱼发送短信已经成为一种趋势,因为权威,而且价格也比较适中,被越来越多的公司所采用。在介绍阿里大鱼发送短信之前,首先得拥有阿里云的账号,这个账号可以使用支付宝账号进行登录。笔者是Java程序猿,本篇也只介绍Java的方式,其他方式参考阿里云的帮助文档。

步骤

第一步:注册阿里云账号,获取app access key 和 app access secret。点击个人头像------>管理控制台-------->个人账号名称(一般是手机号)----->accesskeys,进入到Access key 管理界面,在发送短信时需要这两个值。

(图1)

第二步:申请短信签名,短信签名是商户的标识,短信签名会出现在短信内容的开头,例如支付宝的短信签名为”支付宝”,短信开头的内容是【支付宝】。申请短信签名需要审核,而且有个数限制,一般不会超过5个。管理控制台----->展开云计算基础服务----->短信服务------> 短信签名------> 添加短信签名

(图2)

第三步:申请短信模板,阿里大鱼将短信分为三种,验证码,短信通知和推广短信。申请短信模板也需要审核,但是没有个数限制。

第四步:下载SDK及Demo,将aliyun-java-sdk-core-version.jar及aliyun-java-sdk-dysmsapi-version.jar导入到项目中,其中version为版本号。如果是Maven项目,解压文件,搜索pom.properties,将groupId,artifactId,version写入到pom.xml中。

#Generated by Maven
#Wed Jun 14 21:12:41 CST 2017
version=1.0.0-SNAPSHOT
groupId=com.aliyun
artifactId=aliyun-java-sdk-dysmsapi
替换为
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>

第五步:编写程序,编写程序分为三部分。

第一部分,获取IAcsClient对象,该对象用来发送请求。创建IAcsClient对象的过程需要app access key 和 secret。

/**
* 获取IAcsClient对象
*
* @return
* @throws ClientException
*/
private static IAcsClient initClient() throws ClientException {
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
// 初始化ascClient需要的几个参数
final String product = "Dysmsapi";// 短信API产品名称
final String domain = "dysmsapi.aliyuncs.com";// 短信API产品域名
// 秘钥key和secret
final String appkey = "yourappKey";
final String appSecret = "yourappsecret";
// 初始化ascClient,暂时不支持多region
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", appkey, appSecret);
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
return acsClient;
}

第二部分:根据短信模板,创建SendSmsRequest请求对象。

/**
* 获取SMS_72780019短信模板对应的请求
*
* @return
*/
private static SendSmsRequest getSMS_72780019Message() {
//组装请求对象
SendSmsRequest request = new SendSmsRequest();
//必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为20个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
request.setPhoneNumbers("1500000000");
//必填:短信签名-可在短信控制台中找到
request.setSignName("云通信");
//必填:短信模板-可在短信控制台中找到
request.setTemplateCode("SMS_1000000");
//可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}");
//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
request.setOutId("yourOutId");
}

第三部分:发送短信,获取响应对象,

/**
* @param templateCode 短信模板code
* @throws ClientException
*
*/
public static void sendMessage(String templateCode) throws ClientException {
// 初始化client对象
IAcsClient client = initClient();
// 短信模板请求对象
SendSmsRequest request = null;
// 根据短信模板code来获取不同的短信模板请求对象
switch(templateCode)
{
case "SMS_72780019":
request = getSMS_72780019Message();
break;
}
// 发送短信
SendSmsResponse response = client.getAcsResponse(request);
// 打印短信的消息
System.out.println("_____________发送SMS_72780019短信收到的响应信息_______________");
System.out.println("请求的ID:" + response.getRequestId());
System.out.println("请求的状态码:" + response.getCode());
System.out.println("请求的状态码描述:" + response.getMessage());
System.out.println("请求的回执ID:" + response.getBizId());
}

点击短信服务统计,可以看到每天发送多少条短信,如果发送短信失败,可以点击”失败详情”查看原因,也可以根据请求的状态码,去查阅错误码列表。

至此本篇内容结束。

短信通道——阿里大鱼(java)的更多相关文章

  1. Java调用阿里云短信通道服务【千锋】

    这里我们使用SpringBoot 来调用阿里通信的服务. 阿里通信,双11.收到短信,日发送达6亿条.保障力度非常高. 使用的步骤: 1.1. 第一步:需要开通账户 1.2. 第二步:阅读接口文档 1 ...

  2. 零基础大数据入门教程:Java调用阿里云短信通道服务

    这里我们使用SpringBoot 来调用阿里通信的服务. 阿里通信,双11.收到短信,日发送达6亿条.保障力度非常高. 使用的步骤: 1.1. 第一步:需要开通账户 1.2. 第二步:阅读接口文档 1 ...

  3. Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用

    近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限, ...

  4. 中国网建SMS短信接口调用(java发送和接收手机短信)

    1.先注册账号,一定要填写好签名格式.不填会返回-51错误.   代码信息接口详细==>http://sms.webchinese.cn/api.shtml   . 2.测试代码 package ...

  5. Laravel-手机短信验证码-阿里云

    1.composer require alibabacloud/client2.App\Service\AliyunSms.php <?php namespace App\Service; us ...

  6. .net短信接口调用示例(106短信通道)

    1. [代码]调用代理示例 using System;using System.Data;using System.Configuration;using System.Collections;usi ...

  7. Laravel5中使用阿里大于(鱼)发送短信验证码

    在做用户注册和个人中心的安全管理时,我实现借助第三方短信平台(阿里大于(鱼))在Laravel框架中进行手机验证的设置:阿里大于,是阿里通信旗下优质便捷的云通信服务平台,整合了三大运营商的通信能力,为 ...

  8. PHP使用阿里大鱼发送短信验证

    目前,基本上所有的网站注册都要求手机绑定,并通过下发短信验证码方式验证手机的真实性,提高了用户的真实性.但是一般企业单独申请短信行业通道都比较困难,因此选择一家信誉好,稳定性.及时性强的第三方短信通道 ...

  9. 阿里云短信服务Java版

    短信服务管理平台 https://dysms.console.aliyun.com/dysms.htm java短信发送API    https://help.aliyun.com/document_ ...

随机推荐

  1. codeforces div2 603 D. Secret Passwords(并查集)

    题目链接:https://codeforces.com/contest/1263/problem/D 题意:有n个小写字符串代表n个密码,加入存在两个密码有共同的字母,那么说这两个密码可以认为是同一个 ...

  2. numpy (1.16.4) has the default value of allow_pickle as False.

    My version of numpy (1.16.4) has the default value of allow_pickle as False. numpy版本是1.16.4,allow_pi ...

  3. Yii2 框架下 session跨域共享互通

    在项目实施过程中,往往把一个大项目进行分拆成几个独立的项目,项目用完全独立的域名和文件,可以放到不同的服务器上的独立分项目. 几个子项目共用一个登录点. 原理简单来说就是服务端session 共享, ...

  4. linux下建立多级文件目录

    linux下使用mkdir可以创建目录,使用mkdir -p参数就可以创建: mkdir -p /home/orale/duqiang1/duqiang2   如果父目录存在也不会报错.

  5. AcWing 870. 约数个数

    #include <iostream> #include <algorithm> #include <unordered_map> #include <vec ...

  6. Java进阶学习(4)之继承与多态(下)

    多态变量和向上造型 多态变量 子类和子类型 类定义了类型 子类定义了子类型 子类的对象可以被当作父类的对象来使用 赋值给父类的变量 传递给需要父类对象的函数 放进存放父类对象的容器里 多态变量 Jav ...

  7. Springboot的多环境配置

    通常应用都会被安装到几个不同的环境(比如开发.测试.生产等),每个环境都会有一些参数是不一样的. Spring Boot对此也提供了支持,配置文件的名称只要满足application-{profile ...

  8. go基础_控制语句

    if控制语句 说明:(1)if后面的条件语句不用加括号 (2)if后面可以跟一个简单的初始化语句,并以分号分割,初始化语句中的变量的作用域是整个if语句块 (3)if语句的条件语句需要尽量简单 (4) ...

  9. P&R 5

    Floorplan: 要做好floorplan需要掌握哪些知识跟技能? 通常,遇到floorplan问题,大致的debug步骤跟方法有哪些? 如何衡量floorplan的QA? 芯片的整体架构模块划分 ...

  10. Web基础了解版08-JSTL-Core标签库

    JSTL JSP为我们提供了可以自定义标签库(Tag Library)的功能,用来替代代码脚本,Sun公司又定义了一套通用的标签库名为JSTL(JSP Standard Tag Library),里面 ...