자바 문자 발송 기능 실현-텐 센트 클 라 우 드 문자
현재 문자 발송 기능 은 이미 인터넷 회사 의 표준 이 되 었 으 며,이 글 은 자바 문자 발송 을 한 걸음 한 걸음 실현 할 것 이다.
문자 서 비 스 를 제공 하 는 세 가 지 를 많이 살 펴 보 았 는데 거의 모든 것 이 기업 인증 이 있어 야 사용 할 수 있 기 때문에 개인 학습 에 매우 불편 하 다.다방면으로 비교 한 후에 텐 센트 클 라 우 드 를 선 택 했 는데 그 이 유 는 두 가지 가 있다.
위 챗 공식 번호 인증 지원(문턱 낮 음)매달 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 번 문자 템 플 릿
문자 설정 정보
총결산
위 에서 말 한 것 은 편집장 이 여러분 에 게 소개 한 자바 가 문자 발송 기능 인 텐 센트 클 라 우 드 문 자 를 실현 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.만약 에 궁금 한 점 이 있 으 면 저 에 게 메 시 지 를 남 겨 주세요.편집장 은 제때에 여러분 에 게 답 할 것 입 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
손 으로 텐 센트 클 라 우 드 서버 입문 을 가르쳐 드 립 니 다(그림 강좌)메모:제 가 선택 한 것 은 윈도 서버 이기 때문에 이 글 은 윈도 플랫폼 을 바탕 으로 구 축 된 것 입 니 다.저 는 다른 플랫폼 에 대해 잘 모 릅 니 다.리 눅 스 를 접 해 봤 지만 잘 놀 지 못 해서 구축...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.