700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Java调用阿里云短信接口 发送短信

Java调用阿里云短信接口 发送短信

时间:2022-02-25 05:22:05

相关推荐

Java调用阿里云短信接口 发送短信

Java调用阿里云短信接口,发送短信

1.短信服务这个很简单,只需要知道accessKeyId(AK)、accessKeySecret(SK)、短信签名、短信模板即可。

2.域名和产品名称是固定的,使用的是阿里的产品

AK和SK查看

AK:

SK:

ps:短信模板和签名。

注意:这里的短信签名的适用场景和短信模板的类型必须相同,否则会报错。(即:签名的适用场景为验证码,则模板的类型也是验证码)

ps:个人申请短信签名和模板很难通过审核。现在短信签名申请,如果没有上线的app或者网站的话,貌似申请不了了。

个人申请半天,短信签名一直没通过,幸好之前申请过。。。嘿嘿。。。

废话不多说,直接上代码。

POM文件依赖:

<!--阿里短信服务--><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>3.7.1</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-dysmsapi</artifactId><version>1.1.0</version></dependency>

代码如下:

@Componentpublic class SMSNotification {// 此处需要替换成开发者自己的AK和SK(在阿里云访问控制台寻找)private static String accessKeyId = "xxxxxx";private static String accessKeySecret = "xxxxxx";// 阿里云产品名称:云通信短信API产品,开发者无需替换private static String product = "Dysmsapi";// 阿里云产品域名,开发者无需替换private static String domain = "";public String sendSMS(String message){try{//初始化acsClient,暂不支持region化IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,accessKeySecret);DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou",product,domain);IAcsClient acsClient = new DefaultAcsClient(profile);SendSmsRequest request = new SendSmsRequest();//必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为20个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式request.setPhoneNumbers("手机号1,手机号2");//必填:短信签名-可在短信控制台中找到request.setSignName("这里是你自己的短信签名");//必填:短信模板-可在短信控制台中找到request.setTemplateCode("这里是你自己的短信模板CODE");//可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为request.setTemplateParam(message);//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者request.setOutId("");//请求失败这里会抛ClientException异常SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);return sendSmsResponse.getMessage();} catch (Exception ex) {log.info("短信发送失败:{} ", ex.getMessage());return "";}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。