阿里云调用三方工具发送短信

1.配置

alidayu:
  #AccessKey ID
  accessKeyId: 
  #AccessKey Secret
  accessKeySecret: 
  #登录验证码模板
  loginTemplate[signName]: 模板名称
  loginTemplate[templateCode]: SMS_209950049
  #信息发送短信模板
  messageTemplate[signName]: 阿里云短信测试
  messageTemplate[templateCode]: SMS_154950909

 2.工具类 我是直接在业务里面写的代码

/**
 * @param phone
 * @return
 * @todo 获取手机验证码
 */
@Override
public String phoneCode(String phone) {
    if (phone == null) {
        new BusinessExeption("1037","手机号不能为空");
    }
    //找出传递过来的手机号
    EntityWrapper<Family> wrapper = new EntityWrapper<>();
    wrapper.eq("phone", phone);
    Family logininfo = familyService.selectOne(wrapper);

    //如果有这个手机号码,就把Code放入redis当中
    String code = null;
    if (logininfo != null) {

      //  HashMap<String, Object> map = new HashMap<>();
        code = StrUtils.getRandomString(4);
        String key = "phoneCode";
        redisTemplate.opsForValue().set(key, code);
        //   SmsUtils.sendSms(phone,"您的验证码为:"+code);
        System.out.println(phone + "验证码为" + code);

        /**
         * 连接阿里云:
         *
         * 三个参数:
         * regionId 不要动,默认使用官方的
         * accessKeyId 自己的用户accessKeyId
         * accessSecret 自己的用户accessSecret
         */
        DefaultProfile profile = DefaultProfile.getProfile(
                REGION_ID, KEY_ID, SECRET_ID);
        IAcsClient client = new DefaultAcsClient(profile);

        // 构建请求:
        CommonRequest request = new CommonRequest();

        request.setSysMethod(MethodType.POST);
        request.setSysDomain("dysmsapi.aliyuncs.com");
        //  request.setSysVersion("2019-05-25");
        request.setSysAction("SendSms");
        request.setSysVersion("2017-05-25");

        // 自定义参数:
        request.putQueryParameter("PhoneNumbers", phone);// 接收短信的手机号
        request.putQueryParameter("SignName", "四川创琦科技");// 短信签名
        request.putQueryParameter("TemplateCode", "SMS_241361581");// 短信模版CODE

        // 构建短信验证码
        Map<String, Object> map = new HashMap<>();
        map.put("code", code);// 这里仅用于测试,所以验证码写死
        request.putQueryParameter("TemplateParam", JSONObject.toJSONString(map));

        try {
            CommonResponse response = client.getCommonResponse(request);
            System.out.println(response.getData());
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
        

    } else {
        throw new BusinessExeption("1036","账号未绑定,请去绑定");
    }
    return code;
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值