여섯, springboot 간단한 우아함 SMS 서비스를 달성

머리말

이전 스포크 springboot 통합 메일 서비스, 우리가 SMS 서비스 막대를 사용하는 방법 springboot 프로젝트에서 함께 배울 수 있습니다.
이 프로젝트 등 기본적으로 단문 메시지 서비스, 간단한 등록 코드, 메시지 알림에 사용됩니다 사용됩니다. 그래서 발판에 갈거야 또한 짧은 메시지 서비스가 제공됩니다 물려 받았다.
단문 메시지 서비스 플랫폼 나는 알리 구름을 사용합니다. 많은 온라인 SMS 서비스 제공 업체가 있습니다. 당신은 자신의 필요에 따라 선택할 수 있습니다.

준비

알리도 구성으로, 클라우드 서비스에 열었습니다. :이 aliyun 공식 문서를 매우 명확하게, 정교하지 않은 방법 작성됩니다, 당신은 문서를 참조 할 수
https://blog.csdn.net/qq_27790011/article/details/78339856

일단 구성되면, 다음과 같은 정보를 얻을 필요가있다 :

accessKeyId, accessSecret 두 키입니다. 그것은 사용자 액세스 키에서 찾을 수 있습니다.

signName는 서명의 이름입니다.

파일

templateCode 템플릿 코드
파일

종속성과 구성을 추가

위의 준비, 우리는 지금 우리의 프로젝트를 개발을 시작하려고합니다. 의존 pom.xml 파일에 가입 좋아한다 :

<!--阿里云短信服务-->
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.1.0</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.61</version>
        </dependency>

이 fastjson는 프로젝트를 사용하지 않은에 충분히 최초의 의존을 추가, 그것을 사용하지 않은 의존 할 필요가 없습니다.

그런 다음 application.properties 구성 파일에 참여,이 네 개의 매개 변수, 네 개의 매개 변수는 일을 위해 우리를 준비하는 것입니다.
파일

서비스 계층

그리고 메일 서비스, 우리는 여기에 레이어 인터페이스 SmsService 및 SmsServiceImpl 클래스를 생성 서비스에 직접 작성, 데이터베이스에 관련되지 않습니다.

파일

다음과 같이 SmsServiceImpl 코드는 다음과 같습니다

@Service
@Slf4j
public class SmsServiceImpl implements SmsService {

    @Value("${sms.accessKeyId}")
    private String accessKeyId;

    @Value("${sms.accessSecret}")
    private String accessSecret;

    @Value("${sms.signName}")
    private String signName;

    @Value("${sms.templateCode}")
    private String templateCode;

    @Override
    public boolean sendSms(String iponeNUmber) {
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessSecret);
        IAcsClient client = new DefaultAcsClient(profile);
        CommonRequest request = new CommonRequest();
        request.setMethod(MethodType.POST);
        request.setDomain("dysmsapi.aliyuncs.com");
        request.setVersion("2017-05-25");
        request.setAction("SendSms");
        request.putQueryParameter("RegionId", "cn-hangzhou");
        request.putQueryParameter("PhoneNumbers", iponeNUmber);
        request.putQueryParameter("SignName", signName);
        request.putQueryParameter("TemplateCode", templateCode);
        JSONObject object=new JSONObject();
        String randCode=getRandCode(6);
        log.info("验证码为:{}",randCode);
        object.put("code",randCode);
        request.putQueryParameter("TemplateParam", object.toJSONString());
        try {
            CommonResponse response = client.getCommonResponse(request);
            log.info(response.getData());
            return true;
        } catch (Exception e) {
            log.error("{}",e);
        }
        return false;
    }
    /**
     * 生成随机验证码
     * @param digits
     * @return
     */
    public static String getRandCode(int digits) {
        StringBuilder sBuilder = new StringBuilder();
        Random rd = new Random((new Date()).getTime());

        for(int i = 0; i < digits; ++i) {
            sBuilder.append(String.valueOf(rd.nextInt(9)));
        }

        return sBuilder.toString();
    }
}

전체 코드 로직은 네 개의 매개 변수가 취득하는 것을 첫 번째 값 참고 구성 파일에 의해, 매우 간단합니다.

sendSms () 메소드

DefaultProfile 등과 IAcsClient DefaultAcsClient 만들고 인스턴스를 초기화된다. 세 개의 매개 변수는 각각 다음과 같습니다 지역 ID, RAM 계정입니다 accesskey ID, RAM 계정입니다 accesskey 비밀.

DescribeInstancesRequest는 API 요청을 작성하고 매개 변수를 설정하는 것입니다. request.putQueryParamete는 () 우리는 주요 매개 변수가 수정 수정합니다. 전화 번호 PHONENUMBERS 내가 문자 메시지 인증 코드를 전송 여기에, 정보를받을 수 있습니다. 나는 여기에 짧은 메시지의 6 비트 코드를 생성합니다. 모두의 특정 요구는 요구에 따라 조정할 수 있습니다.

컨트롤러 레이어

계층 제어기는, 비교적 간단하게 다음과 같이이 SMS를 SmsController 패킷의 클래스를 생성하는 메시지를 송신 인터페이스 :

@RestController
@RequestMapping("/sms")
public class SmsController {

    @Autowired
    private SmsService smsService;

    @RequestMapping(value = "/send",method = RequestMethod.GET)
    public String sendSms(@RequestParam(value = "userName")String userName){
        smsService.sendSms(userName);
        return "success";
    }
}

테스트

지금까지, 단문 메시지 서비스가 잘 설정되어, 지금 우리가 테스트해야, 우리가 처음 프로젝트를 시작하고 인터페이스를 호출

http://localhost:9090/zlflovemm/sms/send?userName=13265459362

그런 다음 로그를 확인

파일

우리의 휴대 전화를 봐 문자 메시지를 받았다.

파일

SMS 서비스는 성공을 볼 수 있습니다 구성되어 있습니다. 전반적으로, 우리는 확실히 그 복잡하지 않았다.

번외

음, 너무 많은 당신을 위해, 오늘의 코드는 GitHub의 친구의 프로젝트에 동기화됩니다.
GitHub의 주소 : HTTPS : //github.com/QuellanAn/zlflovemm

따라 오세요 ♡

개인 공공 우려 번호에 오신 것을 환영합니다 "프로그래머는 요구르트를 좋아한다"

자바, 리눅스, 빅 데이터 등 학습 자료의 다양성을 공유 할 수 있습니다. 자신과 고품질의 기술 블로그의 전달을 공유하면서 정보, 비디오, 문서 및 소스 코드가 포함되어 있습니다.

당신은주의를 좋아하고 요 ❤을 공유하는 기억한다면
파일

추천

출처www.cnblogs.com/quellanan/p/11671022.html