這篇文章主要講解了“SpringBoot項目之怎么實現短信發送接口”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“SpringBoot項目之怎么實現短信發送接口”吧!
描述:請求第三方短信接口平臺(而第三方短信平臺的接口請求是webservice方式實現的),此時我們要測試接口是否通,要用的工具SoapUI測試工具, 不能用PostMan,即使用post組裝完參數請求該短信平臺接口也不會通的(請求之前要ping通IP,只有在同一網段才可請求.或者使用VPN遠程連接也可請求),接口通了之后.開始裸代碼.代碼使用IDEA工具去完成 , 實現邏輯根據需求而定.
<!--生成短信代碼webservice START--> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>commons-discovery</groupId> <artifactId>commons-discovery</artifactId> <version>0.2</version> </dependency>
①創建一個新的包,鼠標點擊此包
②找到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項目之怎么實現短信發送接口這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。