阅读文本大概需要 7 分钟。

前言

前几日,有粉丝后台私信我如何实现发送短信的功能,刚好久一刚刚用到了这个功能,就把具体的实现过程记录下来,分享给大家。

我们日常使用的软件或者网站,大部分都在使用短信业务,比如注册、验证码功能。还有一些特定的业务需要发送短信通知用户等。有了需求就会有平台提供服务,国内有很多互联网公司都提供短信业务,比如阿里、腾讯、七牛。国外有 Twillo 公司同样可以提供服务,也有相应的额度。本篇文章提及的是腾讯提供的短信服务。

其实实现发送短信功能非常简单,只需要在服务提供平台进行注册以及简单的配置。创建签名和模板,采用官方提供的SDK,调用接口即可。

我使用的是腾讯提供的短信业务,腾讯提供每个月100 的免费额度,用来测试足够了。

1、腾讯短信服务

复制下方的链接到浏览器打开,就可以访问腾讯短信服务的页面。进行简单的注册,下一步开始正题。

https://console.cloud.tencent.com/sms/smslist

2、创建应用

首先第一步要添加一个应用,这个应用你可以理解为一种方便管理自己的短信配置的模块,通过应用的名字就可以得知:这个应用对应的是自己的哪个项目,至于起什么名字并无大碍。比如我命名为:在线打印。

3、点击刚刚创建的应用名称,进入应用配置。在这个页面,你需要注意下方图片圈出来的两个参数,分别是:SDK AppID、App Key。后面代码的参数会用到这两个参数。

4、点击「国内短信」,在这里可以看到自己发送短信的情况。包括发送成功的次数、失败的次数等等。当然现在的任务是进行配置模板。

5、点击「短信内容配置」,在这里我们需要配置短信签名和短信正文。什么是短信签名呢,拿我们收到过的短信来说:“【阿里巴巴】您的验证码为:56659,请妥善保管好,切勿告知他人 ”。这条短息中 阿里巴巴 就是短信签名。

6、点击创建短信签名,这里可以选择签名的类型。是用于公司还是APP、网站。根据自己的情况来就可以,但是如果选择「网站」签名类型的话,需要提供备案的截屏,如果没备案的可以去操作一下。如果选择「公司」需要提供营业执照截屏。

对于没有备案的网站和营业执照的朋友,久一也帮你探索好了别的道路,可以使用 阿里云 的短信服务,不过对于没有营业执照的情况,阿里提供的短信服务只能申请验证码的功能,想一些通知用户取货、通知取货码等等通用功能是没办法申请的。

阿里短信服务网址:

account.aliyun.com/login/login.html

下面链接是阿里云短信服务的博文,流程差不多:

blog.csdn.net/qq_38225558/article/details/84954935。

点击「确认」后,只需要等待官方任务对域名进行审核。

7、创建「短信正文」,短信正文就是短信签名后面具体的短信内容了,比如:”您的文件打印完毕,请在在{1}前凭取件码{2},至{3}取件,若有问题请联系店主{4}。“其中用括号括起来的数字是一个变量,这个需要根据我们具体的业务逻辑来动态填充。后面代码就会明白!比如下面是我创建的两个短信正文。

8、等待审核通过,刚刚创建短信签名和短信正文成功,状态会是:审核中,如果不是 违法或者格式不正确,一般半小时就能审核成功,如果审核通过,可以记录下短信签名的名称以及短信正文的ID。

9、完事具备、只欠东风。点开「快速入门」,阅读短信业务的API 文档,如果不想度可以直接看我下面的代码。

10、我们选择Java SDK文档进行查阅。

11、编写代码

引入依赖,我使用的Maven搭建项目,管理Jar包。如果不了解Maven工具,可以查看本订阅号历史文章学习:需要在 pom.xml 中添加如下依赖:

<dependency>   <groupId>com.github.qcloudsms</groupId> <artifactId>qcloudsms</artifactId>  <version>1.0.6</version>
</dependency

准备必要参数,这些参数都是上方我们提到的,根据自己的情况进行填写即可。

// 短信应用 SDK AppID
int appid = 1400009099; // 1400开头  // 短信应用SDK AppKey
String appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad";  // 需要发送短信的手机号码
String[] phoneNumbers = {"21212313123", "12345678902", "12345678903"};   // 短信模板ID,需要在短信应用中申请
int templateId = 7839; // NOTE: 这里的模板ID`7839`只是一个示例,真实的模板ID需要在短信控制台中申请
//templateId7839对应的内容是"您的验证码是: {1}"
// 签名
String smsSign = "腾讯云"; // NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是一个示例,真实的签名需要在短信控制台申请

指定模板 ID 单发短信, 比如我们置顶的短信模板为:您的文件打印完毕,请在在{1}前凭取件码{2},至{3}取件,若有问题请联系店主{4}。注意下方的 params。

public static void sendSms(){  try {   String[] params = {"20:10","521-521","南苑店面,南苑住宿区","1785417xxxx"};//数组具体的元素个数和模板中变量个数必须一致,例如示例中templateId:5678对应一个变量,参数数组中元素个数也必须是一个   SmsSingleSender ssender = new SmsSingleSender(appid, appkey);  SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNumbers[0],  templateId, params, smsSign, "", "");  // 签名参数未提供或者为空时,会使用默认签名发送短信   System.out.println(result);
} catch (HTTPException e) { // HTTP响应码错误    e.printStackTrace();
} catch (JSONException e) { // json解析错误 e.printStackTrace();
} catch (IOException e) {   // 网络IO错误   e.printStackTrace();
}
}

12、测试运行 sendSms 函数:

总结:

上面就是比较实用的短信发送实战,如果发送失败,可以根据接口调用返回的result的错误代码查阅官方文档,如果按照我的步骤一步一步来应该不会出错。

至此,我们揭开了发送短信业务的什么面纱。如果你阅读完本文有所收获,还请多多转发、点赞支持。你的转发是最大的赞赏,宝贝儿!

关注订阅号「Web项目聚集地」回复:「技术文章」,即可获取更改实战教程、实用教程,我们明天见!

1. 

2. 

3.

4.

7 分钟实现 Java 发送短信功能!相关推荐

  1. 实现 Java 发送短信功能

    前言 前几日,有粉丝后台私信我如何实现发送短信的功能,刚好久一刚刚用到了这个功能,就把具体的实现过程记录下来,分享给大家. 我们日常使用的软件或者网站,大部分都在使用短信业务,比如注册.验证码功能.还 ...

  2. 【短信发送】实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现

    实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现 一.开通腾讯云短信服务 二.工具类--使用qcloudsms实现短信发送 三.Spring Boot项目引入短信发送功能 我们发 ...

  3. java发送短信验证码带倒计时

    分享一个完整的java发送短信验证码的完整实例,这是一个官方的使用demo,带有60秒倒计时功能. 效果: 我使用的是榛子云短信平台 , 官网地址:http://sms_developer.zhenz ...

  4. java发送短信模板_java发送短信

    java发送短信一般步骤 一.在中国网建中注册用户:本程序是通过中国网建提供的SMS短信平台实现的,该平台新用户注册可以拥有免费5条普通短信和3条彩信,足够进行尝试和体验了.中国网建注册地址:http ...

  5. Java 发送短信验证码

    Java 发送短信验证码给手机 发送短信验证码其实很简单,就是调用一下第三方的短信API接口,填写参数,发送请求,第三方平台会将信息发送给对方手机当中 介绍 我个人测试所使用的第三方API是" ...

  6. 中国网建SMS短信接口调用(java发送短信)

    java发送短信 package sms;import org.apache.commons.httpclient.Header; import org.apache.commons.httpclie ...

  7. TP5调用阿里云短信接口实现发送短信功能

    TP5调用阿里云短信接口实现发送短信功能 工作需要,对接阿里云的短信服务,借此记录一下(网站 www.lelee.top) 主要分为两个部分,一是下载官方的Demo事例,这个不需要多说,自己去下载就行 ...

  8. springboot集成阿里云短信服务,实现发送短信功能

    springboot集成阿里云短信服务,实现发送短信功能 准备工作: 1.登陆阿里云->进入控制台->开通短信服务(进入后根据提示开通) 2.充值(借人家平台发短信你以为不要钱的?我充了3 ...

  9. php可以发短信的代码,PHP代码函数实现PHP发送短信功能

    //PHP代码函数实现PHP发送短信功能 //本代码基于开心洋葱 运行 //代码来源:开心洋葱 //PHP发送短信开心洋葱专用(PHP代码函数) //本代码基于开心洋葱 运行 //代码来源:开心洋葱 ...

最新文章

  1. XML在JAVA项目中的作用
  2. asp.net等项目编译失败的原因之不能写入
  3. 【Centos】修改系统字符集
  4. 使用VNC访问Linux桌面
  5. sql 2005分区表
  6. 从几个角度谈谈内存的管理和划分
  7. win python 怎么打开建立一个孤立的进程_python实现在windows服务中新建进程的方法...
  8. 使用Pycharm将代码同步到GitHub
  9. 有关Silverlight3.0在浏览器外运行的问题
  10. SQL2005学习(十六),SQL小知识点
  11. php对smarty的使用,[ php ] php smarty使用!
  12. sql系列(基础篇)-第一章 关于sysdate
  13. com口驱动_四足机器人FOC驱动器篇1:Odrive Moco接口板套件介绍
  14. android mdpi对应哪一个屏幕,Android屏幕大小为ldpi,mdpi,hdpi,xhdpi显示? - 例如:ldpi为1024X768像素...
  15. APP测试:禁止APP登录页面截图解决方法
  16. 单片机电子密码锁C语言程序,以STC89C52单片机为核心的电子密码锁设计
  17. PostgreSQL 各种查询
  18. 2021-01-27 大数据课程笔记 day7
  19. NAT+路由?内网套娃模式到底有何弊端?
  20. 11_MySQL笔记-主从复制-延迟备份-读写分离

热门文章

  1. python的注释有哪几种_Python注释方式有哪些
  2. C语言的学习日志1.2
  3. 【RW007系列综合实战2】使用RW007模块连接小米蓝牙温湿度计2代
  4. coderwhy前端学习笔记八
  5. 2203-C语言基础知识
  6. 黑马jvm课程笔记d1
  7. 如何用一个U盘制作winPE、windows、linux、deepin多系统启动盘,并且剩余部分还能继续当U盘使用
  8. 创建和导出SVG的技巧
  9. React:阻止默认事件
  10. PHP centry的使用