1.项目中引入Maven
阿里云地址
差别编程语言都有对应的SDK,你们下载自己需要的即可。
pom.xml中添加maven坐标
- <!--阿里云短信服务-->
- <dependency>
- <groupId>com.aliyun</groupId>
- <artifactId>alibabacloud-dysmsapi20170525</artifactId>
- <version>2.0.22</version>
- </dependency>
复制代码
2.业务代码
接下来的代码不是单纯的利用短佩服务商提供的发送代码来完成短信的发送那样子就太简单了,我想你们也不想看这样的文章了CSDN一抓一大把,或者看官方文档即可。为了通用短佩服务商,可以是腾讯云,阿里云等提供的短信业务。
这篇文章已经推迟更新十多天了,都没时间来更新,业务代码和项目已经都是完成了我放在gitee上,到时候堆栈我会公共出来,这样你们也可以拉取下来改成对应的短信发送系统。
项目利用
下面就是开始讲下项目需要设置那些数据就可以开箱即用。
系统需求
- JDK >= 1.8
- MySQL >= 5.7
- Maven >= 3.0
须要设置
- 修改数据库毗连,编辑resources目录下的application-dev.yml
- # 应用服务 WEB 访问端口
- server:
- #应用的端口号
- port: 8080
- servlet:
- #应用的访问路径
- context-path: /
- # DataSource Config
- spring:
- datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://127.0.0.1:3306/itmei-sms?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&nullCatalogMeansCurrent=true
- username: root
- password: root
复制代码
- doc目录下有准备好利用的itmei-sms.sql文件,到时候自己创建一个库把sql导入
- 修改短佩服务商设置信息,编辑resources目录下的SmsParamsConfig.yml
- ## 配置短信
- itmei-sms-config:
- #是否开启短信发送
- sms_send_or_not: true
- # 对接的短信服务商
- aliyun_sms:
- accessKeyId: xxx
- accessKeySecret: xxx
- signName: xxx
- #场景
- sms_scene:
- #场景类型
- appointment_success: xxx
- will_arrive_store: xxx
- send_it_the_night_before: xxx
- verification_code_sms: xxx
- # 腾讯云服务商
- tencent_sms:
- accessKeyId: #你自己的accessKeyId
- accessKeySecret: #你自己的accessKeySecret
- signName: #你自己的签名
- #场景
- sms_scene:
- #场景类型
- appointment_success: #你自己的短信模板
- will_arrive_store: #你自己的短信模板
- send_it_the_night_before: #你自己的短信模板
- verification_code_sms: #你自己的短信模板
-
复制代码 留意:
对接的服务商名称tencent_sms,aliyun_sms可不是乱取的,每个服务商对应一个service,这个service需要实现SmsInterface接口
已经完成的阿里云短信实现类:
关于场景类型名称的key需要设置到SmsSceneEnum枚举类中定义。
由于会把SmsParamsConfig.yml设置的数据转换成JSONObject对象来利用。这样我们在后续的代码中可以通过对应服务商的特征来利用对应的设置如下图调用。
SmsSupplierConfig类用于获取我们定义的yml文件并且把数据转成Map<String, Object>在转成JSONObject对象。
短佩服务商类
已我已经完成的阿里云短佩服务为例:
在service包下imp创建对应短信发服务类如SmsAliyunServiceImpl后需要实现SmsInterface接口重写内里发方法sendSms和getDepartmentTemplateParam,对应服务商都会提供示例代码和对应的jar包或者是maven坐标我们引入到系统即可,把示例代码写到sendSms方法中并且创建服务类中的唯一标识并且添加到SmsSupplierEnum短佩服务商枚举中
按照我写好的阿里云示例代码编写好你们对接的短佩服务商后,我们就开始组装需要的参数并且发送信息。
发送短信测试
项目中引入了测试类,我在SmsApplicationTests类中编写了发送测试的代码
- @Test
- void testSmsSend() {
- //配置需要使用的短信服务商信息等
- SmsTemplateConfig config = new SmsTemplateConfig();
- config.setSceneEnum(SmsSceneEnum.APPOINTMENT_SUCCESS.getCode());
- config.setSupplierEnum(SmsSupplierEnum.ALIYUN_SMS.getCode());
- config.setSourceEnum(SmsSendSourceEnum.PC.getCode());
- //自己短信模板的对应参数
- Map<String, Object> templateParam = new HashMap<>();
- templateParam.put("name", "itmei");
- templateParam.put("date_time", DateUtil.now());
- templateParam.put("address", "万达广场");
- templateParam.put("customer_phone", "19999999999");
- templateParam.put("landline", "wxid_itmei");
- config.setTemplateParam(templateParam);
- smsServiec.sendSms("19999999999", config, true);
- }
复制代码 完成
短信发送乐成生存到数据库中。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |