阿里云短信发送服务util

官方文档链接
SDK版本:4.5.0

写这篇blog的的时候,官方文档已经更新到4.5.1了…(┬_┬)

导入maven依赖

    <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>aliyun-java-sdk-core</artifactId>
      <version>4.5.0</version>
    </dependency>

使用yml配置相关帐号信息

  aliyun:
    note:
      sendVerificationCode: SMS_*****
      accessKeyId: **********
      accessKeySecret: **********

util代码
记得把 *换成项目里的相关代码

package com.***.common.util;

import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * @author len
 * @describe 短信发送工具类
 * @createTime 2020/5/18
 */
@Slf4j
@Component
public class SmsUtils {

    private final static String REGION_ID = "cn-hangzhou";
    private final static String SIGN_NAME = "****";

    @Value("${***.aliyun.note.accessKeyId}")
    private String accessKeyId;
    @Value("${***.aliyun.note.accessKeySecret}")
    private String accessSecret;
    @Value("${***.aliyun.note.sendVerificationCode}")
    public String sendVerificationCode;

    /**
     * 发送短信
     *
     * @param phoneNumber  手机号
     * @param templateParam 短信模板变量对应的实际值,JSON格式。
     *                      如果JSON中需要带换行符,请参照标准的JSON协议处理。
     * @return
     */
    public JSONObject sendMsg(String phoneNumber, String templateParam) {
        DefaultProfile profile = DefaultProfile.getProfile(REGION_ID, accessKeyId, accessSecret);
        IAcsClient client = new DefaultAcsClient(profile);

        CommonRequest request = new CommonRequest();
        request.setSysMethod(MethodType.POST);
        request.setSysDomain("dysmsapi.aliyuncs.com");
        request.setSysVersion("2017-05-25");
        request.setSysAction("SendSms");
        request.putQueryParameter("RegionId", REGION_ID);
        request.putQueryParameter("PhoneNumbers", phoneNumber);
        request.putQueryParameter("SignName", SIGN_NAME);
        request.putQueryParameter("TemplateCode", sendVerificationCode);
        request.putQueryParameter("TemplateParam", templateParam);
        try {
            CommonResponse response = client.getCommonResponse(request);
            log.info("短信发送结果: {}",response.getData());
            JSONObject result = JSONObject.parseObject(response.getData());
            return result;
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
        return null;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值