當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Springboot实现手机短信服务
生活随笔
收集整理的這篇文章主要介紹了
Springboot实现手机短信服务
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、首先進入云之訊注冊賬戶
鏈接:https://office.ucpaas.com/.
進入開發者控制臺,獲取對應的請求地址、應用ID、用戶ID和鑒權token
進行認證
創建模板
二、Springboot集成短信發送
1、Maven依賴
阿里的開源框架FastJson,用于JSON格式字符串與JSON對象及javaBean之間的轉換
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.5.1</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.56</version></dependency> </dependencies>2、application.properties
# 短信服務 # 應用ID message.appId= xxxxxxxxxxxxxxxxxxxx # 用戶sid message.account.sid= xxxxxxxxxxxxxxxxxxxx # 鑒權token message.auth.token= xxxxxxxxxxxxxxxxxxxx # 請求地址 message.rest.url= https://open.ucpaas.com/ol/sms/{function} # 默認手機號 message.default.phone = xxxxxxxxxxx # 默認模板 message.defaule.templateId = xxxxxx| 發送短信 | 指定模板單發 | https://open.ucpaas.com/ol/sms/sendsms | 指定變量/固定模板單發 |
| ~ | 指定模板群發 | https://open.ucpaas.com/ol/sms/sendsms_batch | 指定變量/固定模板群發 |
| 狀態報告 | 推送狀態報告 | / | 實時推送短信發送狀態報告。 |
| 模板接口 | 增加模板 | https://open.ucpaas.com/ol/sms/addsmstemplate | 通過接口增加模板 |
| ~ | 查詢模板 | https://open.ucpaas.com/ol/sms/getsmstemplate | 獲取賬戶內的全部模板 |
| ~ | 編輯模板 | https://open.ucpaas.com/ol/sms/editsmstemplate | 編輯指定模板 |
| ~ | 刪除模板 | https://open.ucpaas.com/ol/sms/deletesmstemplate | 刪除指定模板 |
3、配置類
public class MessageConfig implements Serializable {/*** 應用ID*/@Value("${message.appId}")private String appId;/*** 用戶sid*/@Value("${message.account.sid}")private String accountSid;/*** 鑒權密鑰*/@Value("${message.auth.token}")private String authToken;/*** 請求地址*/@Value("${message.rest.url}")private String restUrl;/*** 短信模板ID*/@Value("${message.default.templateId}")private String templateId;/*** 手機號*/@Value("${message.default.phone}")private String phone;public String getAppId() {return appId;}public void setAppId(String appId) {this.appId = appId;}public String getAccountSid() {return accountSid;}public void setAccountSid(String accountSid) {this.accountSid = accountSid;}public String getAuthToken() {return authToken;}public void setAuthToken(String authToken) {this.authToken = authToken;}public String getRestUrl() {return restUrl;}public void setRestUrl(String restUrl) {this.restUrl = restUrl;}public String getTemplateId() {return templateId;}public void setTemplateId(String templateId) {this.templateId = templateId;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;} }4、RestTemplate配置類
/*** RestTemplate配置類*/ @Configuration public class RestTemplateConfig {@Beanpublic RestTemplate restTemplate() {return new RestTemplate();} }5、SendMessageService
public interface SendMessageService {/*** 單發短信** @param messageConfig 短信配置* @return*/String sendMessage(MessageConfig messageConfig);/*** 群發短信** @param messageConfig 短信配置* @return*/String sendBatchMessage(MessageConfig messageConfig); }6、SendMessageServiceImpl
@Service public class SendMessageServiceImpl implements SendMessageService {private static final Logger logger = LoggerFactory.getLogger(SendMessageServiceImpl.class);@Autowiredprivate RestTemplate restTemplate;@Overridepublic String sendMessage(MessageConfig messageConfig) {logger.info("sendMessage start,{}", JavaBeanUtil.jacksonToString(messageConfig));Assert.notNull(messageConfig,"發送短信配置不能為空");//單發郵件APIString url = messageConfig.getRestUrl()+"sendsms";//使用restTemplate進行訪問遠程服務HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_JSON_UTF8);HttpEntity<String> httpEntity = new HttpEntity<String>(getParameter(messageConfig),headers);return restTemplate.patchForObject(url,httpEntity,String.class);}@Overridepublic String sendBatchMessage(MessageConfig messageConfig) {logger.info("sendBatchMessage start,{}", JavaBeanUtil.jacksonToString(messageConfig));Assert.notNull(messageConfig,"發送短信配置不能為空");//群發郵件APIString url = messageConfig.getRestUrl()+"sendsms_batch";HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_JSON_UTF8);HttpEntity<String> httpEntity = new HttpEntity<String>(getParameter(messageConfig),headers);return restTemplate.patchForObject(url,httpEntity,String.class);}/*** 配置發送參數** @param messageConfig* @return*/public String getParameter(MessageConfig messageConfig) {JSONObject jsonObject = new JSONObject();//基礎配置jsonObject.put("sid",messageConfig.getAccountSid());jsonObject.put("token",messageConfig.getAuthToken());jsonObject.put("appid",messageConfig.getAppId());//模板ID 參數之間用逗號作為間隔符jsonObject.put("template",messageConfig.getTemplateId());//要發送的手機號,多個手機號用逗號分隔jsonObject.put("mobile",messageConfig.getPhone());//用戶ID,隨狀態報告返回,可以不填寫jsonObject.put("uid","");return JSONObject.toJSONString(jsonObject);} }7、SendMessageController
@RestController @ResponseResult//用于對接口響應體進行包裝的注解 @RequestMapping("/send-message") @Api(value = "發送短信接口",tags = {"發送短信接口"}) public class SendMessageController {@Autowiredprivate SendMessageService sendMessageService;@PostMapping("/simple")@ApiOperation(value = "單發消息",notes = "單發手機短信消息")public String sendMessage(MessageConfig messageConfig) {return sendMessageService.sendMessage(messageConfig);}@PostMapping("/batch")@ApiOperation(value = "群發消息",notes = "群發手機短信消息")public String sendBatchMessage(MessageConfig messageConfig) {return sendMessageService.sendBatchMessage(messageConfig);} }總結
以上是生活随笔為你收集整理的Springboot实现手机短信服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python服务端设置心跳处理_Hear
- 下一篇: mysql优化数据库对象