Springboot集成SMS发送短信

本文介绍了如何在SpringBoot项目中集成第三方短信发送平台,通过注册、获取必要信息和编写代码实现短信发送功能,包括测试和接收响应,提供了一种快速上手的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前大多网站APP的登陆方式都不再单一,通过手机获取短信验证码进行账户登陆无疑是最方便、快捷和安全的一种方式。

第三方短信发送平台有很多种,各个平台有各自的优缺点,在选择的时候可以根据自己的具体实际情况定夺,今天LZ分享一个比较好上手的平台供广大码农借鉴,并非打广告,只是感觉真心好用。

LZ之前并不晓得SMS是什么鬼,只是去年在看一位大牛博主分享springboot案例的时候提到,对着大牛的步骤和代码操作了下去,顺利完成了短信发送的功能。最近刚好有个小小的需求要用到短信验证,去翻大牛的博客,竟然被关闭了,幸运的是有备份代码! 好东西应该分享出来,迎合开源精神 @#$!

【2】平台开通

2.1:用户注册

百度SMS短信通,进入官方页面,注册账号;
官网:http://sms.webchinese.cn/

2018-08-11_131642.png

 

2.2:登陆获取必要信息

 

2018-08-11_131836.png

登陆之后,首页会展示当前用户部分信息,这里只关注短信条数,新注册用户会有5条免费的测试短信,这里我们要记住的重要信息主要有5条,切记要保存好

1:账号名
2:密码
3:短信秘钥(验签秘钥,长度为20的加密字符串)
4:绑定手机:153xxxxxxxx
5:绑定邮箱:xxxxxxxxx@qq.com

2018-08-11_132904.png

【3】代码实现

1、加入依赖

<dependencies>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-lo
### 集成短信发送服务到Spring Boot项目并涉及WSDL配置 #### 使用Bottom-Up方法创建Web Service 在Spring Boot项目中集成短信发送服务并通过WSDL进行配置可以采用自底向上(Bottom-Up)的方法。这种方法首先编写实现业务逻辑的服务代码,之后再基于这些代码生成相应的WSDL文件[^1]。 对于短信发送功能而言,通常会调用第三方API来完成实际的消息传递工作。为了使此过程标准化并与现有系统兼容,可以通过JAX-WS工具集将Java类转换为SOAP Web Services,并自动生产对应的WSDL描述文档。 以下是具体操作指南: #### 添加依赖项至`pom.xml` 确保项目的Maven构建文件包含了必要的库支持,特别是用于处理SOAP消息和服务发布的组件: ```xml <dependency> <groupId>javax.xml.ws</groupId> <artifactId>jaxws-api</artifactId> <version>2.3.1</version> </dependency> <!-- 如果需要发布HTTP端点 --> <dependency> <groupId>com.sun.xml.ws</groupId> <artifactId>jaxws-rt</artifactId> <version>2.3.2</version> </dependency> ``` #### 创建SMS接口定义 设计一个简单的接口用来表示要暴露给外部世界的短信发送能力: ```java import javax.jws.WebMethod; import javax.jws.WebService; @WebService(name="SMSService", targetNamespace = "http://example.com/sms") public interface SMSService { @WebMethod(operationName = "sendSms") String sendSms(String phoneNumber, String message); } ``` #### 实现该接口的具体行为 接下来提供上述接口的一个具体实现版本,在这里假设已经有一个名为`TwilioClient`的对象负责执行真实的网络请求: ```java package com.example.sms.service.impl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service("smsServiceImpl") public class SMSServiceImpl implements SMSService { private final TwilioClient twilioClient; public SMSServiceImpl(@Autowired TwilioClient client){ this.twilioClient=client; } @Override public String sendSms(String phoneNumber, String message) { try{ boolean success = twilioClient.sendMessage(phoneNumber,message); return success ? "Message sent successfully." : "Failed to deliver message."; }catch(Exception e){ throw new RuntimeException(e.getMessage()); } } } ``` #### 发布Web Service Endpoint 最后一步是在应用程序启动时注册新的WebServiceEndpoint Bean实例,以便能够接收来自客户端的远程调用: ```java @Configuration @EnableWs @Import({ServerConfiguration.class}) public class AppConfig extends WsConfigurerAdapter { @Bean public ServletRegistrationBean<SpringServlet> springServlet() { ServletRegistrationBean<SpringServlet> registration = new ServletRegistrationBean<>(new SpringServlet(), "/soap/*"); registration.setLoadOnStartup(1); return registration; } @Bean(name = "smsservice") public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema schema) { DefaultWsdl11Definition wsdlDef = new DefaultWsdl11Definition(); wsdlDef.setPortTypeName("SMSPortType"); wsdlDef.setLocationUri("/soap/smsservice"); wsdlDef.setTargetNamespace("http://example.com/sms"); wsdlDef.setSchema(schema); return wsdlDef; } @Bean public XsdSchema smsschema(){ return new SimpleXsdSchema(new ClassPathResource("schema.xsd")); } } ``` 通过以上步骤就可以成功地在一个典型的Spring Boot环境中设置好带有WSDL支持的短信发送web service了。一旦部署完毕,其他应用就能依据所生成的WSDL文件轻松对接本系统的短信通知特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值