日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

阿里云短信调用

發(fā)布時間:2023/12/20 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阿里云短信调用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

方式一:?

@Service public class SmsServiceImpl implements SmsService {@Overridepublic SendSmsResponseVO send(SmsRequestDTO dto) {//設(shè)置超時時間-可自行調(diào)整System.setProperty("sun.net.client.defaultConnectTimeout", FoundationConstant.Sms.DEFAULT_CONNECT_TIMEOUT);System.setProperty("sun.net.client.defaultReadTimeout", FoundationConstant.Sms.DEFAULT_READ_TIMEOUT);//初始化ascClient,暫時不支持多region(請勿修改)IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", FoundationConstant.Sms.ACCESS_KEY_ID,FoundationConstant.Sms.ACCESS_KEY_SECRET);try {DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", FoundationConstant.Sms.PRODUCT, FoundationConstant.Sms.DOMAIN);} catch (ClientException e) {e.printStackTrace();}IAcsClient acsClient = new DefaultAcsClient(profile);//組裝請求對象SendSmsRequest request = new SendSmsRequest();//使用post提交request.setMethod(MethodType.POST);//必填:待發(fā)送手機號request.setPhoneNumbers(dto.getPhoneNumbers());//必填:短信簽名-可在短信控制臺中找到request.setSignName(dto.getSignName());//必填:短信模板-可在短信控制臺中找到request.setTemplateCode(dto.getTemplateCode());//可選:模板中的變量替換JSON串,如模板內(nèi)容為"親愛的${name},您的驗證碼為${code}"時,此處的值為//友情提示:如果JSON中需要帶換行符,請參照標(biāo)準(zhǔn)的JSON協(xié)議對換行符的要求,比如短信內(nèi)容中包含\r\n的情況在JSON中需要表示成\\r\\n,否則會導(dǎo)致JSON在服務(wù)端解析失敗//參考:request.setTemplateParam("{\"變量1\":\"值1\",\"變量2\":\"值2\",\"變量3\":\"值3\"}"),"{\"name\":\"Tom\", \"code\":\"123\"}"request.setTemplateParam(dto.getTemplateParam());//可選-上行短信擴展碼(擴展碼字段控制在7位或以下,無特殊需求用戶請忽略此字段)//request.setSmsUpExtendCode("90997");//可選:outId為提供給業(yè)務(wù)方擴展字段,最終在短信回執(zhí)消息中將此值帶回給調(diào)用者request.setOutId(UUID.randomUUID().toString());//請求失敗這里會拋ClientException異常SendSmsResponse sendSmsResponse = null;try {sendSmsResponse = acsClient.getAcsResponse(request);} catch (ClientException e) {e.printStackTrace();throw new BusinessException("短信發(fā)送失敗:"+e.getErrMsg());}/*if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {//短信發(fā)送成功}*/SendSmsResponseVO responseVO = BeanUtils.copyProperties(sendSmsResponse,SendSmsResponseVO.class);return responseVO;} } /*** 連接超時時間*/public static final String DEFAULT_CONNECT_TIMEOUT = "10000";/*** 短信接口讀取超時時間*/public static final String DEFAULT_READ_TIMEOUT = "10000";/*** 短信API產(chǎn)品名稱(短信產(chǎn)品名固定,無需修改)*/public static final String PRODUCT = "Dysmsapi";/*** 短信API產(chǎn)品域名(接口地址固定,無需修改)*/public static final String DOMAIN = "dysmsapi.aliyuncs.com";/*** accessKeyId*/public static final String ACCESS_KEY_ID = "阿里云訪問的id";/*** accessKeySecret*/public static final String ACCESS_KEY_SECRET = "1阿里云訪問的secret";/*** 短信簽名*/public static final String SIGN_NAME = "自定義";/*** 短信模板code*/public static final String TEMPLATE_CODE = "阿里云配置的模板";

方式二: 參考地址:java調(diào)用阿里云短信服務(wù)接口_sunon_的博客-CSDN博客_java調(diào)用阿里云短信接口

其實官方api中已經(jīng)寫的很明白了,但是為了方便以后查看,還是搬一下吧。

?

之前都是用的互億無線短信平臺,最近幾個項目才轉(zhuǎn)的阿里云。 沒啥難度的,僅是記錄下。

在我的博客查看:zjblog

首先結(jié)合項目需求在阿里云申請幾個模板,簽名也需要申請下。

?調(diào)用接口方法

public static String sendSms(String phone, String templateCode, String otherparams) {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", phone);request.putQueryParameter("SignName", "微信平臺移動辦公");request.putQueryParameter("TemplateCode", templateCode);request.putQueryParameter("TemplateParam", otherparams);try {CommonResponse response = client.getCommonResponse(request);System.out.println(response.getData());return response.getData();} catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {e.printStackTrace();}return null;}

調(diào)用發(fā)送短信方法

JSONObject jsonParam = new JSONObject();jsonParam.put("realname", realname);jsonParam.put("type", typename);SendSms.sendSms("1777*****72", "SMS_183793510", jsonParam.toString());//SMS_183793510為對應(yīng)的模板code

?

總結(jié)

以上是生活随笔為你收集整理的阿里云短信调用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。