java接入創(chuàng)藍(lán)253短信驗(yàn)證碼的實(shí)例講解
說明 項(xiàng)目是springboot框架
1.短信配置文件 包含驗(yàn)證碼發(fā)送路徑、用戶名、密碼
chuanglan.requesturl= chuanglan.account= chuanglan.pswd=
配置文件
具體值 查看官網(wǎng) 位置查看截圖 紅框已經(jīng)標(biāo)紅

2.讀取配置文件類

3.發(fā)送數(shù)據(jù)request實(shí)體類
public class SmsVariableRequest
{
private String account;
private String password;
private String msg;
private String params;
private String sendtime;
private String report;
private String extend;
private String uid;
private String msgId;
private String failNum;
private String successNum;
private String phone;
public SmsVariableRequest()
{
}
public SmsVariableRequest(String account, String password, String msg, String params)
{
this.account = account;
this.password = password;
this.msg = msg;
this.params = params;
}
public SmsVariableRequest(String account, String password, String msg, String params, String report,String phone) {
this.account = account;
this.password = password;
this.msg = msg;
this.params = params;
this.report = report;
this.phone = phone;
}
public String getAccount()
{
return this.account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
public String getMsg() {
return this.msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getSendtime() {
return this.sendtime;
}
public void setSendtime(String sendtime) {
this.sendtime = sendtime;
}
public String getReport() {
return this.report;
}
public void setReport(String report) {
this.report = report;
}
public String getExtend() {
return this.extend;
}
public void setExtend(String extend) {
this.extend = extend;
}
public String getUid() {
return this.uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getParams() {
return this.params;
}
public void setParams(String params) {
this.params = params;
}
public String getMsgId() {
return msgId;
}
public void setMsgId(String msgId) {
this.msgId = msgId;
}
public String getFailNum() {
return failNum;
}
public void setFailNum(String failNum) {
this.failNum = failNum;
}
public String getSuccessNum() {
return successNum;
}
public void setSuccessNum(String successNum) {
this.successNum = successNum;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
4.接收數(shù)據(jù)response實(shí)體類
public class SmsVariableResponse
{
private String time;
private String msgId;
private String errorMsg;
private String failNum;
private String successNum;
private String code;
public String getTime()
{
return this.time;
}
public void setTime(String time) {
this.time = time;
}
public String getMsgId() {
return this.msgId;
}
public void setMsgId(String msgId) {
this.msgId = msgId;
}
public String getErrorMsg() {
return this.errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
public String getCode() {
return this.code;
}
public void setCode(String code) {
this.code = code;
}
public String getFailNum() {
return this.failNum;
}
public void setFailNum(String failNum) {
this.failNum = failNum;
}
public String getSuccessNum() {
return this.successNum;
}
public void setSuccessNum(String successNum) {
this.successNum = successNum;
}
public String toString() {
return "SmsVarableResponse [time=" + this.time + ", msgId=" + this.msgId + ", errorMsg=" + this.errorMsg + ", failNum=" +
this.failNum + ", successNum=" + this.successNum + ", code=" + this.code + "]";
}
5.創(chuàng)藍(lán)短信發(fā)送請(qǐng)求工具類
public class ChuangLanSmsUtil
{
public static String sendSmsByPost(String path, String postContent)
{
URL url = null;
try {
url = new URL(path);
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setConnectTimeout(10000);
httpURLConnection.setReadTimeout(2000);
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
httpURLConnection.setRequestProperty("Charset", "UTF-8");
httpURLConnection.setRequestProperty("Content-Type", "application/json");
httpURLConnection.connect();
OutputStream os = httpURLConnection.getOutputStream();
os.write(postContent.getBytes("UTF-8"));
os.flush();
StringBuilder sb = new StringBuilder();
int httpRspCode = httpURLConnection.getResponseCode();
if (httpRspCode == 200)
{
BufferedReader br = new BufferedReader(
new InputStreamReader(httpURLConnection.getInputStream(), "utf-8"));
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line);
}
br.close();
return sb.toString();
}
}
catch (Exception e)
{
e.printStackTrace();
}
return null;
}
}
6.發(fā)送短信驗(yàn)證碼具體代碼
@Override
public Map<String, Object> send(String content, String mobileNumber) {
String report = "true";
content="【】您的驗(yàn)證碼是:"+content;
SmsVariableRequest smsVariableRequest = new SmsVariableRequest(chuanglanSmsConstants.getAccount(), chuanglanSmsConstants.getPswd(),
content, null, report,mobileNumber);
String requestJson = JSON.toJSONString(smsVariableRequest);
String response = ChuangLanSmsUtil.sendSmsByPost(chuanglanSmsConstants.getRequesturl(), requestJson);
SmsVariableResponse smsVariableResponse = (SmsVariableResponse)JSON.parseObject(response, SmsVariableResponse.class);
System.out.println("response toString is : " + smsVariableResponse);
if(null!=smsVariableResponse&&!"0".equals(smsVariableResponse.getCode())){
if(log.isInfoEnabled()){
log.info(smsVariableResponse);
}
}
return null;
}
7.注意事項(xiàng)
(1)注意短信簽名 【XXXX】 必須是 創(chuàng)藍(lán)短信審核通過的簽名 如果是測(cè)試 可以使用【253云通訊】默認(rèn)的 沒有問題
(2)創(chuàng)藍(lán)短信返回的錯(cuò)誤并不是很明確 不要只注意控制臺(tái)創(chuàng)藍(lán)返回的錯(cuò)誤 注意看創(chuàng)藍(lán)短信在線API
(3)注意看在線demo不建議看離線demo 會(huì)有在線demo已經(jīng)更新離線demo還未更新的情況
(4)如果需要判斷驗(yàn)證碼是否發(fā)送成功 直接"0".equals(smsVariableResponse.getCode()) “0”即發(fā)送成功
以上這篇java接入創(chuàng)藍(lán)253短信驗(yàn)證碼的實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解spring集成mina實(shí)現(xiàn)服務(wù)端主動(dòng)推送(包含心跳檢測(cè))
本篇文章主要介紹了詳解spring集成mina實(shí)現(xiàn)服務(wù)端主動(dòng)推送(包含心跳檢測(cè)),具有一定的參考價(jià)值,與興趣的可以了解一下2017-09-09
Java 實(shí)戰(zhàn)練手項(xiàng)目之酒店管理系統(tǒng)的實(shí)現(xiàn)流程
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實(shí)現(xiàn)一個(gè)酒店管理系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平2021-11-11
詳解Java中的reactive stream協(xié)議
Stream大家應(yīng)該都很熟悉了,java8中為所有的集合類都引入了Stream的概念。優(yōu)雅的鏈?zhǔn)讲僮?,流式處理邏輯,相信用過的人都會(huì)愛不釋手。本文將詳細(xì)介紹Java中的reactive stream協(xié)議。2021-06-06
詳解 JAVA的回調(diào)機(jī)制CallBack
最近學(xué)習(xí)java,接觸到了回調(diào)機(jī)制(CallBack)。初識(shí)時(shí)感覺比較混亂,而且在網(wǎng)上搜索到的相關(guān)的講解,要么一言帶過,要么說的比較單純的像是給CallBack做了一個(gè)定義,本文給大家介紹JAVA的回調(diào)機(jī)制CallBack,感興趣的朋友一起學(xué)習(xí)2016-04-04

