通过Java编程实现发送短信功能(转发) 您所在的位置:网站首页 短信自动转发业务 通过Java编程实现发送短信功能(转发)

通过Java编程实现发送短信功能(转发)

2024-06-03 10:26| 来源: 网络整理| 查看: 265

前言

该文章转发自“Web项目聚集地”(点击蓝色字体即可跳转),作者:王久一。内容有所删改!

正文

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

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

腾讯提供每个月100的免费额度,用来测试足够了。

腾讯短信服务 访问腾讯短信服务的页面。进行简单的注册。 图1创建应用 首先第一步要 添加一个应用,这个应用你可以理解为一种方便管理自己的短信配置的模块,通过应用的名字就可以得知:这个应用对应的是自己的哪个项目,至于起什么名字并无大碍。比如我命名为:在线打印。 图2点击刚刚创建的应用名称,进入应用配置。在这个页面,你需要注意下方图片圈出来的两个参数,分别是:SDK AppID、App Key。后面代码的参数会用到这两个参数。 图3点击 [国内短信],在这里可以看到自己发送短信的情况。包括发送成功的次数、失败的次数等等。当然现在的任务是进行配置模板。 图4点击 [短信内容配置],在这里我们需要配置短信签名和短信正文。什么是短信签名呢?拿我们收到过的短信来说:“[阿里巴巴] 您的验证码为:56659,请妥善保管好,切勿告知他人”。这条短信中,“阿里巴巴”就是短信签名。 图5点击 创建短信签名,这里可以选择签名的类型。是用于公司还是APP、网站。根据自己的情况来就可以,但是如果选择[网站]签名类型的话,需要提供备案的截屏,如果没备案的可以去操作一下。如果选择[公司]需要提供营业执照截屏。 对于没有备案的网站和营业执照的朋友,可以使用阿里云的短信服务,不过对于没有营业执照的情况,阿里提供的短信服务只能申请验证码的功能,像一些通知用户取货、通知取货码等等通知功能是没办法申请的。 阿里短信服务网址:account.aliyun.com/login/login.html 下面链接是阿里云短信服务的博文,流程差不多:blog.csdn.net/qq_38225558/article/details/84954935 . 点击[确认]后,只需要等待官方人物对域名进行审核。 图6创建 [短信正文],短信正文就是短信签名后面具体的短信内容了,比如:“您的文件打印完毕,请在{1}前凭取件码{2},至{3}取件,若有问题请联系店主{4}。”其中用括号括起来的数字是一个变量,这个需要根据我们具体的业务逻辑来动态填充。后面代码就会明白!比如下面是我创建的两个短信正文。 图7等待审核通过,刚刚创建短信签名和短信正文成功,状态会是:审核中。如果不是违法或者格式不正确,一般半小时就能审核成功,如果审核通过,可以记录下短信签名的名称以及短信正文的ID。 图8点击 [快速入门],阅读短信业务的API文档,如果不想读的可以直接看下面的代码。 图9我们 选择Java SDK文档 进行查阅。 图10编写代码之引入依赖 使用Maven搭建项目,管理Jar包,需要在pom.xml中添加如下依赖: com.github.qcloudsms qcloudsms 1.0.6 编写代码之准备必要参数 如下所示,这些参数都是上方我们提到的,根据自己的情况进行填写即可。 // 短信应用 SDK AppID // 1400开头 int appid = 140009099; // 短信应用 SDK AppKey String appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d0ac37470aefc60f9bad"; // 需要发送短信的手机号码 String[] phoneNumbers = ["21212313123", "12345678902", "12345678903"]; // 短信模板ID,需要在短信应用中申请 // NOTE: 这里的模板ID'7839'只是一个示例,真实的模板ID需要在短信控制台中申请 // templateId7839对应的内容是:"您的验证码是:{1}" int templateId = 7839; // 签名 // NOTE: 签名参数使用的是:签名内容,而不是签名ID。这里的签名"腾讯云"只是一个示例,真实的签名需要在短信控制台申请。 String smsSign = "腾讯云"; 编写代码之指定模板ID单发短信 比如我们置顶的短信模板为:您的文件打印完毕,请在{1}前凭取件码{2},至{3}取件,若有问题请联系店主{4}。注意下方的params。 public static void sendSms(){ try{ // 数组具体的元素个数和模板中变量个数必须一致,例如示例中templateId:5678对应一个变量,参数数组元素个数也必须是一个 String[] params = {"20:10", "521-521", "南苑店面,南苑住宿区", "1785417xxxx"}; 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(); } } 测试运行sendSms函数: 图11 总结

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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有