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 아 리 클 라 우 드 문자 인터페이스 도 킹 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많이 지 켜 봐 주세요!

좋은 웹페이지 즐겨찾기