springboot中怎么實(shí)現(xiàn)一個短信服務(wù)功能

今天就跟大家聊聊有關(guān)springboot中怎么實(shí)現(xiàn)一個短信服務(wù)功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

甘南網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),甘南網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為甘南近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的甘南做網(wǎng)站的公司定做!

添加依賴和配置

有了上面的準(zhǔn)備工作,我們接下來開始在我們的項目中開發(fā)吧。一樣的先在pom.xml 文件中加入依賴:

<!--阿里云短信服務(wù)--> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.1.0</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.61</version> </dependency>

這個fastjson 不是必須的,就看你項目中有沒有用到啦,沒有用到的話,添加第一個依賴就好了。

然后在application.properties文件中加入配置,這四個參數(shù),就是準(zhǔn)備工作中我們獲取的四個參數(shù)。

service 層

和郵件服務(wù)一樣,我們這里沒有涉及到數(shù)據(jù)庫,就先直接寫service 層,創(chuàng)建SmsService 接口和 SmsServiceImpl 類。

SmsServiceImpl的代碼如下:

@Service@Slf4jpublic class SmsServiceImpl implements SmsService { @Value("${sms.accessKeyId}") private String accessKeyId; @Value("${sms.accessSecret}") private String accessSecret; @Value("${sms.signName}") private String signName; @Value("${sms.templateCode}") private String templateCode; @Override public boolean sendSms(String iponeNUmber) { DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessSecret); IAcsClient client = new DefaultAcsClient(profile); CommonRequest request = new CommonRequest(); request.setMethod(MethodType.POST); request.setDomain("dysmsapi.aliyuncs.com"); request.setVersion("2017-05-25"); request.setAction("SendSms"); request.putQueryParameter("RegionId", "cn-hangzhou"); request.putQueryParameter("PhoneNumbers", iponeNUmber); request.putQueryParameter("SignName", signName); request.putQueryParameter("TemplateCode", templateCode); JSONObject object=new JSONObject(); String randCode=getRandCode(6); log.info("驗(yàn)證碼為:{}",randCode); object.put("code",randCode); request.putQueryParameter("TemplateParam", object.toJSONString()); try { CommonResponse response = client.getCommonResponse(request); log.info(response.getData()); return true; } catch (Exception e) { log.error("{}",e); } return false; } /** * 生成隨機(jī)驗(yàn)證碼 * @param digits * @return */ public static String getRandCode(int digits) { StringBuilder sBuilder = new StringBuilder(); Random rd = new Random((new Date()).getTime()); for(int i = 0; i < digits; ++i) { sBuilder.append(String.valueOf(rd.nextInt(9))); } return sBuilder.toString(); }}

整體的代碼邏輯很簡單,首先是通過Value注解將配置文件中配置的那四個參數(shù)獲取到。

sendSms()方法中 :

DefaultProfile 和 IAcsClient 是創(chuàng)建DefaultAcsClient實(shí)例并初始化。三個參數(shù)分別對應(yīng)的是:地域ID,RAM賬號的AccessKey ID, RAM賬號AccessKey Secret。

DescribeInstancesRequest 是創(chuàng)建API請求并設(shè)置參數(shù)。request.putQueryParamete()我們修改主要是修改這里面的參數(shù)。PhoneNumbers 是接收信息的手機(jī)號,這里我發(fā)送的是短信驗(yàn)證碼。所以我這里生成一個6位的短息驗(yàn)證碼。具體需求大家可以根據(jù)需求進(jìn)行調(diào)整。

controller 層

controller 層比較簡單,就一個發(fā)送短信的接口,在sms包下創(chuàng)建SmsController類,代碼如下:

@RestController@RequestMapping("/sms")public class SmsController { @Autowired private SmsService smsService; @RequestMapping(value = "/send",method = RequestMethod.GET) public String sendSms(@RequestParam(value = "userName")String userName){ smsService.sendSms(userName); return "success"; }}

看完上述內(nèi)容,你們對springboot中怎么實(shí)現(xiàn)一個短信服務(wù)功能有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

分享文章:springboot中怎么實(shí)現(xiàn)一個短信服務(wù)功能
分享URL:http://muchs.cn/article10/pdphdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、網(wǎng)站內(nèi)鏈App設(shè)計、企業(yè)建站、外貿(mào)網(wǎng)站建設(shè)、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營