下面讲一下Java应用中如何发送短信

发布于:2024-10-24 编辑:匿名 来源:网络

在很多业务场景中,我们都需要发送短信,比如登录验证码、闹钟、营销通知、节日祝福等,这篇文章我们讲一下如何在 Java 应用程序中优雅地发送文本消息。 1 客户端/服务器两种模式 在Java应用程序中发送短信通常需要使用短信服务提供商提供的短信API。

我们经常使用的短信渠道包括:阿里云、腾讯云、华为云、一美等。发送短信有两种模式: 1、客户端模式 客户端模式是指应用系统直接调用短信服务提供的短信API提供商发送短信。

2、服务器模式 服务器模式是独立创建短信平台服务,应用系统直接使用短信平台服务提供的SDK发送短信。核心流程如下:前端调用应用服务接口发送短信;应用服务收到短信请求后,根据模板调用SDK方法发送短信;短信平台服务接收请求,根据路由算法选择配置的通道(如阿里云、腾讯云)。

发送短信;短信已成功发送至用户手机。 2 客户端模式 1. 使用第三方短信通道SDK 客户端模式是一种非常简单的模式。

很多短信服务商都会提供成熟的SDK。业务系统只需添加SDK依赖及相关配置,即可调用SDK提供的方法发送短信。

。我们以阿里云短信服务为例。

调用API发送短信的整个流程如下: SDK使用示例如下: 国内云厂商阿里云、腾讯云、华为云的短信服务均需要申请签名、申请模板、并按顺序复习。通过后才能发送短信。

2、封装多个第三方通道接口。虽然使用第三方短信通道SDK非常简单,但在实际项目中,可能会存在多个第三方通道。

也就是说:有的短信可能是通过腾讯云发送的,有的可能是通过阿里云发送的。 。

这就需要配置项目中不同渠道的SDK依赖。但这种方式有两个明显的问题:不同渠道发送短信的代码不一致,业务代码混乱。

项目中引入了很多SDK包,不同的SDK有不同的依赖关系,可能会造成冲突。为了解决这个问题,一种方法是放弃第三方渠道SDK,自己实现SDK的短信发送方法,这样可以统一发送短信代码,并且易于管理。

笔者找到了一个开源项目SMS4J,它是一个短信聚合框架,旨在集成多种短信服务,解决接入多个短信SDK的繁琐过程。下面我们展示如何集成到SpringBoot环境中。

maven引入代码语言:html copy org.dromara.sms4j sms4j-spring-boot-starter 3.0.2 设置配置文件代码语言:yaml copy sms: alibaba: #阿里云的accessKey accessKeyId:您的accessKey #阿里云的accessKeySecret accessKeySecret:您的accessKeySecret #短信签名signature:测试签名 #模板ID用于使用templateId发送固定模板短信: SMS_4 #模板变量 上述模板的变量 templateName: code #请求地址默认dymsapi.aliyuncs.com。如果没有特殊变化,则无需设置 requestUrl:dymsapi.aliyuncs.com huawei:#huawei 短信 appKey appKey: 5N6fvXXXXHaWhVXXXXXX7fYa #huawei 短信 appSecret app -secret: Wujt7EYzZTBXXXXXXEhSP6XXXX #短信签名signature: 华为短信测试 #发送者频道号: 7 #Template ID 如果使用自定义模板发送方式,可以不设置 template-id: acXXXXXXXXcb2abc1ab5 #华为回调地址,如不需要,不要设置或留空 statusCallBack : #华为分配的应用请求地址 url: zhutong:#尊通消息#终端用户管理用户名必填;如果不是登录账号密码,请登录查看后台管理地址:accessKeyId: tushuXXX #需要铸通终端用户管理的用户名密码; accessKeySecret: UbXXX4SL #短信签名,可选;可选时,只能使用自定义短信,不能使用模板短信;具体在此处查看审核后的短信签名: 签名:上海钱 XXXX 方法使用代码语言:java copy @RestController@RequestMapping("/test/") public class DemoController { // 测试发送固定模板短信 @RequestMapping("/ ") public void doLogin(String username, String password) { //阿里云向该手机号码发送短信 SmsFactory.createSmsBlend(SupplierType.ALIBABA).发送消息(“”,“56”); //华为短信发送短信到该手机号码 SmsFactory .createSmsBlend(SupplierType.HUAWEI).sendMessage("","00"); }}客户端模式是一种简单实用的模式。

我们可以直接引入第三方渠道的SDK来发送短信。但是,当有多个渠道的短信时,可能代码会混乱。

虽然我们可以封装多个第三方通道接口来解决问题,但是研发成本还是比较高。另外,当研发团队比较分散,各自有自己的短信发送系统时,当某个渠道因为某种原因被放弃时,大多数研发团队可能会受到影响。

3 服务器模式 服务器模式是独立创建短信平台服务,应用服务直接使用短信平台提供的SDK发送短信。短信平台的设计有以下几个要点: 1、应用管理 短信平台为每个接入的应用分配单独的appKey和appSecret,并且每个应用都可以配置独立的限流策略。

2、精简的SDK提供了根据模板进行单发/群发的功能代码语言: java copy public SmsSenderResult sendSmsByTemplateId(String mobile, String templateId, Map templateParam); 3、每个应用服务都会涉及到签名和模板管理 签名和模板的管理是集中的,我们可以将一个模板绑定到多个通道。当一条短信通过通道A发送失败时,可以通过另一个通道B发送,从而实现高可用性。

4、多通道适配服务器需要加载多个通道的SDK,可能会造成依赖冲突。您可以使用 SPI 机器来加载通道插件。

笔者曾经重构过一个短信平台服务。架构图如下:模仿腾讯云的SDK设计,提供简单易用的短信接口;设计短信服务API,用于接收短信请求并向消息队列发送短信; Worker服务消费消息,根据负载均衡算法,调用不同渠道商的短信接口; Dashboard可以查看短信发送记录,配置渠道商信息。

下面讲一下Java应用中如何发送短信

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 亮道智能与上海汽车检测达成战略合作

    亮道智能与上海汽车检测达成战略合作

    3月8日,激光雷达系统解决方案提供商亮道智能与上海机动车检验认证技术研究中心有限公司正式签署战略合作协议,建立战略合作伙伴关系。 。 双方将在智能网联汽车相关产品评价领域建立合作伙伴关系,并在环境传感系统评价领域开展合作。

    06-18

  • 商越完成1亿元A轮融资,红杉资本领投

    商越完成1亿元A轮融资,红杉资本领投

    据投资界3月29日消息,数字SaaS采购公司北京商越网络科技有限公司宣布完成1亿元融资元A轮融资,由红杉资本中国基金领投,老股东元璟资本、赛意产业基金、银杏谷资本、锋锐资本、智易资本、汇友资本跟投。 自今年1月开始天使轮融资以来,商越在不到一年半的时间内完成了三轮融

    06-17

  • 义乌设立了价值20亿

    义乌设立了价值20亿

    的生命健康产业基金。 天眼查显示,1月5日,通用科技生命健康产业股权基金(义乌)合伙企业(有限合伙)成立,执行事务机构为通用科技创业投资有限公司。 20亿元人民币。 其业务范围包括私募股权投资基金管理和创业投资基金管理服务。 它利用私募股权基金从事股权投资、投资管

    06-18

  • 油车可以上,但新能源企业很难离开海南岛,深层次的原因是

    油车可以上,但新能源企业很难离开海南岛,深层次的原因是

    这个春节假期,很多去三亚旅游的人可能都有遗憾。 出去的机票1000,回来的机票飙升到10000。 自己开车的游客原本以为自己松了口气,没想到新能源车主又遇到了新问题——买不到离开岛屿的汽车或船票。 据上游新闻报道,海南多位新能源官员反映,难以离岛。 由于新能源渡轮船票

    06-18

  • 鑫稳生物完成数千万元天使轮融资,恩舍家办、永冠新材合投

    鑫稳生物完成数千万元天使轮融资,恩舍家办、永冠新材合投

    耀明生物科技完成数千万元天使轮融资。 据投资界(ID:pedaily)7月14日消息,恩舍家族办公室联合永冠新材料股份有限公司(以下简称“耀明生物科技”)于近日完成数千万天使轮融资融资,由恩社联合家族办公室(以下简称“恩社家族办公室”)与上市公司永冠新材料(股票代码:

    06-18

  • 水井坊:预计一季度净利润同比增长约119.7%

    水井坊:预计一季度净利润同比增长约119.7%

    水井坊(79.SH)发布今年一季度预告公告。 预计今年一季度归属于上市公司股东的净利润将与去年同期持平。 同比增加约2.28亿元,同比增长约0.7%。

    06-18

  • 于冬:保利博纳已具备在美国纽交所主板上市资格

    于冬:保利博纳已具备在美国纽交所主板上市资格

    第22届东京电影节上,保利博纳总裁于冬就保利博纳上市计划接受媒体专访华谊兄弟首次上市后。 他向记者否认了此前传闻的在美国纳斯达克创业板上市的消息,称保利博纳已获得在纽交所主板上市的资格。 他强调,保利博纳启动上市计划不仅仅是为了融资、多拍几部电影,而是为了尽

    06-18

  • 今日完成由泛大西洋资本领投的3亿元B+轮融资,估值超30亿元

    今日完成由泛大西洋资本领投的3亿元B+轮融资,估值超30亿元

    据投资界6月1日消息,中国国民便利店品牌今日宣布完成300家融资万元B+轮融资,美国泛大西洋资本集团领投,估值超30亿元。 这意味着,短短半年时间,今日便利店融资金额突破5亿元。   如今,总部位于武汉,目前在武汉、长沙、南宁等地拥有近十几家有别于传统便利店的新型“生

    06-18

  • 澳贸委代表团来访FLYPRO,XEagle进驻澳大利亚

    澳贸委代表团来访FLYPRO,XEagle进驻澳大利亚

    1月13日,由澳贸委、澳大利亚总领事馆、澳贸委深圳代表处组成的高级别、大型澳大利亚代表团来访FLYPRO深圳飞宝航天,展开市场合作洽谈与澳大利亚智能手表追踪避障无人机XEagle合作,并实现了多方位、多层次的合作。 XEagle将通过线上渠道和超过100家线下零售店全面销售。 考察

    06-18

  • 配饰设计品牌THEYKNOW完成数千万元天使轮融资

    配饰设计品牌THEYKNOW完成数千万元天使轮融资

    据投资界(ID:pedaily)1月25日消息,据36氪获悉,新锐珠宝配饰设计品牌THEYKNOW已完成数千万元天使轮融资数千万人民币天使轮融资。 一圣资本为独家投资者,逐光资本为独家投资者。 THEYKNOW品牌CEO Donald Kng表示,本轮融资将主要用于团队扩张、产品研发、品牌建设三个方

    06-18

  • 沙特基金参与智谱AI最新一轮4亿美元融资

    沙特基金参与智谱AI最新一轮4亿美元融资

    沙特阿美的投资机构Prosperity 7 Investment Company参与了中国人工智能公司智谱AI的4亿美元融资。 这是外国公司首次支持中国大型人工智能企业,智谱AI对这家企业的估值约为30亿美元。 此次投资正值美国加强对中东基金与中国关系的审查,并努力限制中国在人工智能等关键技术方

    06-17

  • 膜科学平台“凯尔医疗”完成数亿元C轮融资,国寿股权领投,

    膜科学平台“凯尔医疗”完成数亿元C轮融资,国寿股权领投,

    投资社区(ID:pedaily)据6月14日消息,“关怀医疗”正式宣布完成数亿元C轮融资。 本轮融资由国寿股权公司领投,中金资本旗下中金启德基金跟投。 本轮融资后,凯尔医疗将继续巩固在膜行业的领导地位,在生物制药、血液净化等业务领域基于不同膜/滤器平台加快研发能力提升,并

    06-18