千家信息网

SpringBoot项目之怎么实现短信发送接口

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,这篇文章主要讲解了"SpringBoot项目之怎么实现短信发送接口",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"SpringBoot项目之怎么实现短信
千家信息网最后更新 2024年11月24日SpringBoot项目之怎么实现短信发送接口

这篇文章主要讲解了"SpringBoot项目之怎么实现短信发送接口",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"SpringBoot项目之怎么实现短信发送接口"吧!

一. 短信接口实现

描述:请求第三方短信接口平台(而第三方短信平台的接口请求是webservice方式实现的),此时我们要测试接口是否通,要用的工具SoapUI测试工具, 不能用PostMan,即使用post组装完参数请求该短信平台接口也不会通的(请求之前要ping通IP,只有在同一网段才可请求.或者使用VPN远程连接也可请求),接口通了之后.开始裸代码.代码使用IDEA工具去完成 , 实现逻辑根据需求而定.

首先导入两个依赖

                    commons-logging            commons-logging            1.2                            commons-discovery            commons-discovery            0.2        

webservice方式实现(IDEA)

①创建一个新的包,鼠标点击此包
②找到generate点击


③会出现以下界面,这里要注意 WSDL URL 地址要改为(短信平台请求接口地址,后边要加问号和wsdl ) 并也要更改Apache Axis 为 Glassfish /JAX-WS

④更改后出现此界面,点击OK后 , 会在新创建的包下出现idea自动创建的文件 .


⑤此时 把.class文件删除就好了,留下此三个文件(注意:SMSNewAllService类可以理解为打通webservice接口的实现类)


⑥业务实现及调用

package com.enn.claim.config.sms;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;/** * 获取配置文件中: 发送短信平台地址/账号/密码/短信类型/费用部门等 参数 */@Component@ConfigurationProperties(prefix = "send-messages")public class SmsProperties {    private String address;    private String userName;    private String passWord;    private String smsType;    private String feeDept;    public String getAddress() {        return address;    }    public void setAddress(String address) {        this.address = address;    }    public String getUserName() {        return userName;    }    public void setUserName(String userName) {        this.userName = userName;    }    public String getPassword() {        return passWord;    }    public void setPassword(String password) {        this.passWord = password;    }    public String getSmsType() {        return smsType;    }    public void setSmsType(String smsType) {        this.smsType = smsType;    }    public String getFeeDept() {        return feeDept;    }    public void setFeeDept(String feeDept) {        this.feeDept = feeDept;    }    @Override    public String toString() {        return "SmsProperties{" +                "address='" + address + '\'' +                ", userName='" + userName + '\'' +                ", passWord='" + passWord + '\'' +                ", smsType='" + smsType + '\'' +                ", feeDept='" + feeDept + '\'' +                '}';    }}
/**     * 发送短信     * @param sendMessageVo     * @return     */    @Override    public SendSmsResult sendMessage(SendSmsVo sendMessageVo) {        // 0.参数校验        sendMessageVo = this.validParams(sendMessageVo);        // 1.创建返回结果集        SendSmsResult smsResult = new SendSmsResult();        try {            //2.拼装发送手机号码            String mobiles = "";            for (int i = 0; i < sendMessageVo.getMobile().size(); i++) {                if (i == 0) {                    mobiles = sendMessageVo.getMobile().get(i);                } else {                    mobiles = mobiles + "," + sendMessageVo.getMobile().get(i);                }            }            //3.发送短信            log.info("开始请求发送短信>>>>>>>>>>>>>>>>>>"+"开始发送短信");            SMSNewAllService service = new SMSNewAllService();            ISMSNewAll ismsNewAll = service.getISMSNewAllPort();            String resultSend = ismsNewAll.sendSMSWithExt(smsProperties.getUserName(), smsProperties.getPassword(), mobiles, sendMessageVo.getSmsBody(), smsProperties.getSmsType(), sendMessageVo.getReplyFlag(), smsProperties.getFeeDept(), sendMessageVo.getAllowStartTime(), sendMessageVo.getAllowEndTime(), sendMessageVo.getDeadLineTime(), sendMessageVo.getAppointTime(), sendMessageVo.getArea(), sendMessageVo.getExtCode());            log.info("请求发送短信返回值>>>>>>>>>>>>>>>>>>{}: "+resultSend);            //4.判断返回结果            if (ObjectUtils.isEmpty(resultSend)) {                return SmsResultUtil.error("请求发送短信失败,短信服务商无响应!");            }            //5.处理返回信息            JSONObject jsonObject = JSONObject.parseObject(resultSend);            String errorCode = jsonObject.get("errorCode").toString();            String status = jsonObject.get("status").toString();            if ("0".equals(errorCode) && "ok".equals(status)) {                String msgInfo = jsonObject.getString("msgInfo");                smsResult = SmsResultUtil.returnMessage(SmsConstants.SystemCode.OK, SmsConstants.MessageCode.SUCCESS_CODE, SmsConstants.MessageMsg.SUCCESS_MSG, msgInfo);                return smsResult;            } else {                String errorMsg = jsonObject.getString("errorMsg");                smsResult = SmsResultUtil.returnMessage(SmsConstants.SystemCode.ERROR, SmsConstants.MessageCode.FAIL_CODE, "请求发送短信失败,服务商返回错误信息为:" + errorMsg, "");                return smsResult;            }        }catch (Exception e){            log.info("请求发送短信失败,系统异常{}", e);            e.printStackTrace();            return SmsResultUtil.error("请求发送短信失败,系统异常!");        }finally {            log.info("发送短信结果{}", JSONObject.toJSONString(smsResult));        }    }

⑦yml配置文件配置

感谢各位的阅读,以上就是"SpringBoot项目之怎么实现短信发送接口"的内容了,经过本文的学习后,相信大家对SpringBoot项目之怎么实现短信发送接口这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0