You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.3 KiB
67 lines
2.3 KiB
package com.bweb.controller;
|
|
|
|
import com.aliyuncs.CommonRequest;
|
|
import com.aliyuncs.CommonResponse;
|
|
import com.aliyuncs.DefaultAcsClient;
|
|
import com.aliyuncs.IAcsClient;
|
|
import com.aliyuncs.http.MethodType;
|
|
import com.aliyuncs.profile.DefaultProfile;
|
|
import com.hai.common.security.VerifyCode;
|
|
import com.hai.common.security.VerifyCodeStorage;
|
|
import com.hai.common.utils.ResponseMsgUtil;
|
|
import com.hai.model.ResponseData;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import java.util.Random;
|
|
|
|
@RestController
|
|
@RequestMapping(value="/sms")
|
|
@Api(value="阿里云短信")
|
|
public class AliyuncsSmsController {
|
|
|
|
Logger log = LoggerFactory.getLogger(AliyuncsSmsController.class);
|
|
|
|
@RequestMapping(value="/sendVerificationCode",method= RequestMethod.POST)
|
|
@ResponseBody
|
|
@ApiOperation(value = "发送验证码")
|
|
public ResponseData sendVerificationCode(@RequestParam(value = "phone", required = true) String phone) {
|
|
try {
|
|
|
|
VerifyCode verifyCode = VerifyCodeStorage.getDate(phone);
|
|
String code;
|
|
if (verifyCode != null){
|
|
code = verifyCode.getObject();
|
|
}else{
|
|
// 生成随机6位验证码
|
|
code = String.valueOf(new Random().nextInt(899999) + 100000);
|
|
}
|
|
DefaultProfile profile = DefaultProfile.getProfile("default", "LTAI4FzFiDCZsspxJfQYoHxC", "tkS64fUpgK0Lr2R8ps0AVYRWZloFLl");
|
|
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", "银企服");
|
|
request.putQueryParameter("TemplateCode", "SMS_210765573");
|
|
request.putQueryParameter("TemplateParam", "{\"code\":\""+code+"\"}");
|
|
|
|
//发送短信
|
|
CommonResponse response = client.getCommonResponse(request);
|
|
// 存入VerifyCodeStorage
|
|
verifyCode = new VerifyCode(phone,code);
|
|
VerifyCodeStorage.save(verifyCode);
|
|
return ResponseMsgUtil.success(response.getData());
|
|
|
|
} catch (Exception e) {
|
|
return ResponseMsgUtil.exception(e);
|
|
}
|
|
}
|
|
}
|
|
|