SpringBoot 는 아 리 클 라 우 드 문자 인터페이스 도 킹 의 예제 코드 를 실현 합 니 다.
6623 단어 SpringBoot문자 메시지
회사 의 최근 프로젝트 는 핸드폰 인증 코드 의 기능 이 필요 합 니 다.임무 가 확 정 된 후에 알렉산더 를 느 꼈 습 니 다.제3자 와 도 킹 하 는 것 이 모두 번 거 로 운 줄 알 았 습 니 다.아 리 의 API,인터넷 대신 이 쓴 블 로 그 를 찾 아 보 니 여러 가지 조사 후에 야 간단 하고 엉망 이 었 습 니 다.여기 서 문 제 를 말 하고 싶 습 니 다.다른 공 성 사자 들 이 저 와 같은 마음 인지 아 닌 지 모 르 겠 습 니 다.하지 않 은 임 무 를 처음 접 했 을 때 어리둥절 한 표정 으로 조급해 하고 손 댈 수 없 는 느낌 이 들 었 습 니 다.나중에 알 게 되면 간단 한 것 이 라 고 생각 합 니 다.여기 서 저 는 자신의 소감 을 말 하고 어 려 운 점 을 만 났 습 니 다.먼저 생각 을 정리 하고 임 무 를 나 누 며 자 료 를 하나씩 찾 습 니 다.사실은 한 세트 로 하면 어리둥절 한 표정 으로 조급해 하지 않 을 것 입 니 다.
필요조건
1.아 리 클 라 우 드 계 정
2.클 라 우 드 통신 의 문자 서비스 개통
3.문자 서명 과 양식 신청
4、access 창설key 와 accesssecret
5.그리고 코드 작성
잔소리 없 이 바로 개발 절 차 를 시작 하 다.
개발 절차
문자 서비스 개통
창설 accesskey 와 accesssecret
문자 양식 과 서명 신청
개발 절차
1.AliyunConfig 클래스 만 들 기
package com.preread.user.config;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import java.util.Random;
/**
* @Description:
* @author: yangxf
* @date: 2019/4/11 15:01
*/
public class AliyunConfig {
/* API ( , ) */
private static final String product = "Dysmsapi";
/* API , , */
private static final String domain = "dysmsapi.aliyuncs.com";
/* accessKeyId accessKeySecret( ) */
private static final String accessKeyId = " accessKeyId"; //TODO:
private static final String accessKeySecret = " accessKeySecret";//TODO:
/* */
public static SendSmsResponse sendSms(String phone) throws ClientException {
/* , */
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
/* acsClient, region */
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
/* - - */
SendSmsRequest request = new SendSmsRequest();
/* : */
request.setPhoneNumbers(phone);
/* : - */
request.setSignName(" "); //TODO:
/* : code- */
request.setTemplateCode(" code"); //TODO: code
/* : JSON , " , $[code]" , */
request.setTemplateParam("{\"code\":\"" + getMsgCode() + "\"}");
// hint , catch
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
if(sendSmsResponse.getCode()!= null && sendSmsResponse.getCode().equals("OK")){
System.out.println(" ! :" + getMsgCode());
}else {
System.out.println(" !");
}
return sendSmsResponse;
}
/**
* @Function:
* @author: yangxf
* @Date: 2019/4/11 15:30
*/
private static String getMsgCode() {
int n = 6;
StringBuilder code = new StringBuilder();
Random ran = new Random();
for (int i = 0; i < n; i++) {
code.append(Integer.valueOf(ran.nextInt(10)).toString());
}
return code.toString();
}
}
2.controller 층 호출
/**
* @Function:
* @author: Yangxf
* @Date: 2019/4/11 15:39
*/
@RequestMapping("/smsverification")
public Object SmsVerification(@Param("phone") String phone) {
return userViewService.SmsVerification(phone);
}
3.서비스 계층 코드
/**
* @Function:
* @author: Yangxf
* @Date: 2019/4/11 15:56
* @param: phone
*/
@Override
public Map<String, Object> SmsVerification(String phone) {
Map<String, Object> map = new HashMap<>();
try {
AliyunConfig.sendSms(phone);
map.put("code", 200);
map.put("msg", " ");
return map;
} catch (ClientException e) {
map.put("code", 300);
map.put("msg", e.getMessage());
return map;
}
}
4.통합 아 리 운 SDK
<!-- SDK -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.7</version>
</dependency>
이 코드 단계 OK,테스트 할 수 있 습 니 다.효 과 는 다음 과 같 습 니 다:
여기 서 SpringBoot 가 아 리 클 라 우 드 문자 인터페이스 도 킹 을 실현 하 는 예제 코드 에 관 한 글 은 여기까지 소개 되 었 습 니 다.더 많은 SpringBoot 아 리 클 라 우 드 문자 인터페이스 도 킹 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많이 지 켜 봐 주세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Java・SpringBoot・Thymeleaf】 에러 메세지를 구현(SpringBoot 어플리케이션 실천편 3)로그인하여 사용자 목록을 표시하는 응용 프로그램을 만들고, Spring에서의 개발에 대해 공부하겠습니다 🌟 마지막 데이터 바인딩에 계속 바인딩 실패 시 오류 메시지를 구현합니다. 마지막 기사🌟 src/main/res...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.