자바 문자 발송 기능 실현-텐 센트 클 라 우 드 문자

머리말
현재 문자 발송 기능 은 이미 인터넷 회사 의 표준 이 되 었 으 며,이 글 은 자바 문자 발송 을 한 걸음 한 걸음 실현 할 것 이다.
문자 서 비 스 를 제공 하 는 세 가 지 를 많이 살 펴 보 았 는데 거의 모든 것 이 기업 인증 이 있어 야 사용 할 수 있 기 때문에 개인 학습 에 매우 불편 하 다.다방면으로 비교 한 후에 텐 센트 클 라 우 드 를 선 택 했 는데 그 이 유 는 두 가지 가 있다.
위 챗 공식 번호 인증 지원(문턱 낮 음)매달 100 통 의 무료 문자(개인 학습 에 적합)를 증정 합 니 다.

개발 환경
참조 하 십시오.
텐 센트 클 라 우 드 문자
문자 서비스 찾기

개통 후,클릭 하여 앱 추가

문자 서명(공중 번호 의 경우)을 설정 하고 서명 유형 은 공중 번호 나 애플 릿 을 선택 하 며 나머지 는 요구 에 따라 작성 하면 됩 니 다.

서명 완료 후 문자 템 플 릿 만 들 기

상기 정보 심사 가 완 료 된 후에 사용 할 수 있 습 니 다.텐 센트 문자 서 비 스 는 SDK AppID 와 App Key 를 사용 해 야 합 니 다.여기 있 습 니 다.

코드
pom.xml 도입 의존

<properties>
 <java.version>1.8</java.version>
 <!--       。。。 -->
 <tencent.qcloudsms.version>1.0.6</tencent.qcloudsms.version>
</properties>

<dependencies>
 <!--       。。。 -->
 <!--      -->
 <dependency>
 <groupId>com.github.qcloudsms</groupId>
 <artifactId>qcloudsms</artifactId>
 <version>${tencent.qcloudsms.version}</version>
 </dependency>
</dependencies>
메시지 보 내기 도구 클래스

package com.wayne.common.utils;
import com.github.qcloudsms.*;
import com.github.qcloudsms.httpclient.HTTPException;
import com.wayne.common.entity.CmsMessageConfig;
import com.wayne.common.exception.CustomException;
import com.wayne.common.form.MessageForm;
import org.json.JSONException;
import java.io.IOException;
/**
 *        
 * @author Wayne
 * @date 2019/6/26
 */
public class MessageUtils {
 /**
 *                
 * @param isSingle      true:   ,false:   
 * @param form                 
 * @param config     
 * @throws CustomException             
 */
 public static void sendMessage(Boolean isSingle, MessageForm form, CmsMessageConfig config) throws CustomException {
 validateMessage(form, config);
 String regex = ";";
 String[] params = {form.getCaptcha()};
 String[] phoneNumbers = form.getMobiles().split(regex);
 SmsResultBase result;
 try {
  //     
  if (isSingle) {
  SmsSingleSender ssender = new SmsSingleSender(config.getAppId(), config.getAppKey());
  result = ssender.sendWithParam("86", phoneNumbers[0], config.getTemplateId(), params, config.getSmsSign(), "", "");
  } else {
  SmsMultiSender msender = new SmsMultiSender(config.getAppId(), config.getAppKey());
  result = msender.sendWithParam("86", phoneNumbers, config.getTemplateId(), params, config.getSmsSign(), "", "");
  }
  System.out.println(result);
 } catch (HTTPException e) {
  e.printStackTrace();
  throw new CustomException("HTTP     ");
 } catch (JSONException e) {
  e.printStackTrace();
  throw new CustomException("json    ");
 } catch (IOException e) {
  e.printStackTrace();
  throw new CustomException("  IO  ");
 }
 }
 /**
 *     
 */
 private static void validateMessage(MessageForm messageForm, CmsMessageConfig messageConfig) throws CustomException {
 ValidatorUtils.validateEntity(messageForm);
 if (null == messageConfig) {
  throw new CustomException("      ");
 }
 }
}
CmsMessageConfig 설정 클래스

 package com.wayne.common.entity;
 import lombok.Data;
 import javax.persistence.*;
 @Data
 @Table(name = "cms_message_config")
 public class CmsMessageConfig {
 /**
 *   
 */
 @Id
 @Column(name = "ID")
 private Integer id;
 /**
 * AppID
 */
 @Column(name = "APP_ID")
 private Integer appId;
 /**
 * AppKey
 */
 @Column(name = "APP_KEY")
 private String appKey;
 /**
 *     ID
 */
 @Column(name = "TEMPLATE_ID")
 private Integer templateId;
 /**
 *     
 */
 @Column(name = "SMS_SIGN")
 private String smsSign;
 /**
 *     ,0: ,1: 
 */
 @Column(name = "IS_DELETE")
 private String isDelete;
 /**
 *   ,0:  ,1:    (                   )
 */
 @Column(name = "IS_USE")
 private String isUse;
 /**
 *    ID
 */
 @Column(name = "CREATE_ADMIN_ID")
 private Integer createAdminId;
 @Column(name = "EXTEND1")
 private String extend1;
 @Column(name = "EXTEND2")
 private String extend2;
 @Column(name = "EXTEND3")
 private String extend3;
 @Column(name = "EXTEND4")
 private String extend4;
 @Column(name = "EXTEND5")
 private String extend5;
 @Column(name = "EXTEND6")
 private String extend6;
 }
Service

@Override
 public ResponseBean sendMessage(MessageForm messageForm) {
 ValidatorUtils.validateEntity(messageForm);
 //            :            
 CmsMessageConfig messageConfig = getCurrUseMessageConfig();
 try {
  //     
  MessageUtils.sendMessage(Boolean.FALSE, messageForm, messageConfig);
 } catch (CustomException e) {
  e.printStackTrace();
  return ResponseBean.createInstance(Boolean.FALSE, 401, e.getMessage());
 }
 return ResponseBean.createInstance();
 }
Controller

 @PostMapping("/message/sendMessage")
 public ResponseBean sendMessage(MessageForm messageForm) {
 return messageService.sendMessage(messageForm);
 }
효과.
1 번 문자 템 플 릿
2 번 문자 템 플 릿

문자 설정 정보

총결산
위 에서 말 한 것 은 편집장 이 여러분 에 게 소개 한 자바 가 문자 발송 기능 인 텐 센트 클 라 우 드 문 자 를 실현 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.만약 에 궁금 한 점 이 있 으 면 저 에 게 메 시 지 를 남 겨 주세요.편집장 은 제때에 여러분 에 게 답 할 것 입 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!

좋은 웹페이지 즐겨찾기