阿里云的手机短信验证

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

  1. 依赖包:
        
            com.aliyun
            aliyun-java-sdk-core
            4.6.0
        
  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 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. 依赖包:
        
            com.aliyun
            dysmsapi20170525
            2.0.24
        
  1. 代码:
    /**
     * 手机短信验证
     * @param phone
     * @param codeMap
     * @return
     */
    @Override
    public boolean phoneNoteNew(String phone, Map 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 

你可能感兴趣的:(api接口,java)