아리운 문자 인터페이스 구현 템플릿
19032 단어 마이크로 서비스
import com.aliyuncs.utils.StringUtils;
import com.sms.service.SendSms;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
@RestController
@CrossOrigin //
public class SendSmsController {
@Autowired
private SendSms sendSms;
private RedisTemplate<String,String> redisTemplate;
@GetMapping("/send/{phone}")
public String code(@PathVariable("phone") String phone){
String code = redisTemplate.opsForValue().get(phone);
if(!StringUtils.isEmpty(code)){
return phone + ":" +code + " , ";
}
// redis
code = UUID.randomUUID().toString().substring(0,4);
HashMap<String,Object> param = new HashMap<>();
param.put("code",code);
boolean isSend = sendSms.send(phone,"SMS_154161",param);
if(isSend){
redisTemplate.opsForValue().set(phone,code,5, TimeUnit.SECONDS);
return phone + ":" + code + " !";
}else {
return " !";
}
}
}
2. 서비스 계층
import java.util.Map;
public interface SendSmsService {
public boolean send(String phoneNum, String templateCode, Map<String,Object> code);
}
3. 서비스 Impl 실현층
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.profile.DefaultProfile;
import com.sms.service.SendSms;
import org.springframework.stereotype.Service;
import java.util.Map;
@Service
public class SendSmsServiceImpl implements SendSmsService {
@Override
public boolean send(String phoneNum, String templateCode, Map<String, Object> code) {
// , Client、
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou", // ID
" ", // RAM AccessKey ID
" "); // RAM AccessKey Secret
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest addSmsTemplateRequest = new CommonRequest();
addSmsTemplateRequest.setSysDomain("dysmsapi.aliyuncs.com");//
addSmsTemplateRequest.setSysVersion("2017-05-25");//
addSmsTemplateRequest.setSysAction("SendSms");
// ( , , , !)
addSmsTemplateRequest.putQueryParameter("PhoneNumbers", phoneNum);
addSmsTemplateRequest.putQueryParameter("SignName", " , ");
addSmsTemplateRequest.putQueryParameter("TemplateCode", templateCode);
addSmsTemplateRequest.putQueryParameter("TemplateParam", JSONObject.toJSONString(code));
try {
CommonResponse response = client.getCommonResponse(addSmsTemplateRequest);
return response.getHttpResponse().isSuccess();
}catch (ServerException e){
e.printStackTrace();
}
catch (ClientException e) {
e.printStackTrace();
}
return false;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
마이크로 서비스 간에feign을 통해 서로 호출되며, 크로스 서버 호출 시 이상이 발생: No route to host해결: feign이 다른 서비스를 호출하는 것도 eureka 등록센터 서비스를 획득하여 서비스가 등록된 IP에 문제가 있는지 추측하고 지정한 appId의 실례를 조회한다. eureka url/eureka/apps/{...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.