阿里云短信调用
方式一:?
@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é)
- 上一篇: 【报告分享】2021年K12在线教育行业
- 下一篇: 【Unity3D-UGUI原理篇】(二)