阿里云的手机短信验证

一,老版的手机短信验证:

  1. 依赖包:
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.6.0</version>
        </dependency>
  1. 实现代码:
    @Value("${aliyun.accessKeyId}")
    private String accessKeyId;
    @Value("${aliyun.accessKeySecret}")
    private String accessKeySecret;
    @Value("${aliyun.signName}")
    private String signName;
    @Value("${aliyun.templateCode}")
    private String templateCode;
    /**
     * 手机短信验证
     * @param phone
     * @param codeMap
     * @return
     */
    @Override
    public boolean phoneNote(String phone, Map<String, String> codeMap) {
         if (StrUtil.isBlank(phone)){
             return false;
         }
         //-------------------------阿里云-短信验证代码------------------
        //基本参数
        DefaultProfile profile =
                DefaultProfile.getProfile("default", accessKeyId, accessKeySecret);
        IAcsClient client = new DefaultAcsClient(profile);
        //设置相关固定的参数
        CommonRequest request = new CommonRequest();
        //request.setProtocol(ProtocolType.HTTPS);
        request.setMethod(MethodType.POST);
        request.setDomain("dysmsapi.aliyuncs.com");
        request.setVersion("2017-05-25");//版本号-不要改
        request.setAction("SendSms");
        //设置发送相关的参数
        request.putQueryParameter("PhoneNumbers",phone); //手机号
        request.putQueryParameter("SignName",signName); //申请阿里云 签名名称
        request.putQueryParameter("TemplateCode",templateCode); //申请阿里云 模板code
        request.putQueryParameter("TemplateParam", JSONUtil.toJsonStr(codeMap)); //验证码数据,转换json数据传递
        //最终发送
        try {
            CommonResponse response = client.getCommonResponse(request);
            boolean success = response.getHttpResponse().isSuccess();
            log.warn("短信验证结果1="+success);
            return true; //成功
        } catch (ClientException e) {
            e.printStackTrace();
            return false;//失败
        }

    }

二,新版的手机短信验证:

  1. 依赖包:
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>dysmsapi20170525</artifactId>
            <version>2.0.24</version>
        </dependency>
  1. 代码:
    /**
     * 手机短信验证
     * @param phone
     * @param codeMap
     * @return
     */
    @Override
    public boolean phoneNoteNew(String phone, Map<String, String> codeMap) throws Exception {
        //-------------------------阿里云-短信验证代码------------------
      Client client =client(accessKeyId,accessKeySecret);
        SendSmsRequest sendSmsRequest = new SendSmsRequest()
                .setSignName(signName)
                .setTemplateCode(templateCode)
                .setPhoneNumbers(phone)
                .setTemplateParam(JSONUtil.toJsonStr(codeMap));
       RuntimeOptions runtime = new RuntimeOptions();
        try {
            SendSmsResponse resp = client.sendSmsWithOptions(sendSmsRequest, runtime);
             log.warn("短信验证结果=="+resp.getStatusCode());
            log.warn("短信验证结果22=="+resp.getBody().getMessage());
              return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }

    }
    private Client client(String setAccessKeyId, String setAccessKeySecret) throws Exception {
        Config config = new Config()
                // 必填,您的 AccessKey ID
                .setAccessKeyId(setAccessKeyId)
                // 必填,您的 AccessKey Secret
                .setAccessKeySecret(setAccessKeySecret);
        // Endpoint 请参考 https://api.aliyun.com/product/Dysmsapi
        config.endpoint = "dysmsapi.aliyuncs.com";
        return new Client(config);
    }

关注,收藏,点赞,有问题可以私信“门主” :v:z13135361785 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT空门:门主

你的鼓励是我发稿的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值