forked from thinkgem/jeesite
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
126 additions
and
0 deletions.
There are no files selected for viewing
126 changes: 126 additions & 0 deletions
126
src/main/java/com/thinkgem/jeesite/common/utils/SmsLeyunUtils.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,126 @@ | ||
package com.thinkgem.jeesite.common.utils; | ||
|
||
import java.io.BufferedReader; | ||
import java.io.IOException; | ||
import java.io.InputStreamReader; | ||
import java.io.OutputStream; | ||
import java.net.HttpURLConnection; | ||
import java.net.URL; | ||
import java.net.URLEncoder; | ||
|
||
import org.slf4j.Logger; | ||
import org.slf4j.LoggerFactory; | ||
|
||
/** | ||
* 乐云短信 | ||
*/ | ||
public class SmsLeyunUtils { | ||
|
||
private final static Logger logger = LoggerFactory.getLogger(SmsLeyunUtils.class); | ||
private final static String url = "http://lehuo520.cn/a/sms/api"; //账号的平台url地址 | ||
private final static String data = "username=jeesite&password=jeesite.com"; //账号的平台账号密码 | ||
|
||
public static void main(String[] args) { | ||
String phone = "18500000000"; //收短信人手机号码;例如:18500000000 支持多号码,号码之间用英文逗号隔开,最多100个 | ||
String content = "【JeeSite】您好,您的验证码是:123456(请勿透露给其他人)感谢您的使用。"; //输入需要发送内容;例如:你好这是一条测试短信 | ||
String smsid = ""; //短信id,查询短信状态报告时需要,可为空 | ||
String sendTime = ""; //发送时间,为空立即发送 | ||
System.out.println(send(content, phone, sendTime)); //发短信 | ||
System.out.println(status(smsid, phone)); //取状态 | ||
System.out.println(reply()); //取上行 回复短信 | ||
} | ||
|
||
/** | ||
* 发送短信 | ||
* @param content,phone,sendtime | ||
* @return {"result":"0","describing":"提交成功","sms":[{"phone":"18073110001,18073110002","smsid":"83bd18f1d48b4cc9b9fe7810c768ac43","status":"3"}]} | ||
*/ | ||
public static String send(String content, String phone, String sendTime) { | ||
String res = ""; | ||
try { | ||
String param = data + "&phone=" + phone + "&content=" + URLEncoder.encode(content, "UTF-8") | ||
+ "&sendTime=" + sendTime; | ||
res = connectURL(url + "/send", param); | ||
} catch (Exception ex) { | ||
logger.error(ex.getMessage(), ex); | ||
} | ||
return res; | ||
|
||
} | ||
|
||
/** | ||
* 获取状态 | ||
* @param smsid,phone可为空,为空取最近两天未获取状态报告,沦询间隔时间不能低于5分钟 | ||
* @return 请求错误返回页面示例: {"result":"-1","describing":"帐号不存在,请检查用户名或者密码是否正确","sms":[]} 请求成功返回页面示例: | ||
* {"result":"0","describing":"提交成功","sms":[{"phone":"18073110001","smsid":"83bd18f1d48b4cc9b9fe7810c768ac43","status":"7"},{"phone":"18073110001","smsid":"83bd18f1d48b4cc9b9fe7810c768ac43","status":"8"}]} | ||
*/ | ||
public static String status(String smsid, String phone) { | ||
String res = ""; | ||
try { | ||
String param = data + "&smsid=" + smsid; | ||
res = connectURL(url + "/status", param); | ||
} catch (Exception ex) { | ||
logger.error(ex.getMessage(), ex); | ||
} | ||
return res; | ||
|
||
} | ||
|
||
/** | ||
* 获取回复 | ||
* @param smsid:下发短信对应短信ID,taskId同一批任务ID | ||
* @return {"result":"0","sms":[{"phone":"18073110001","neirong":"已收到","taskId":"83bd18f1d48b4cc9b9fe7810c768ac43"},"smsId":"83bd18f1d48b48j9b9fe7810c768ac43"}]} | ||
*/ | ||
public static String reply() { | ||
String res = ""; | ||
try { | ||
String param = data; | ||
res = connectURL(url + "/query", param); | ||
} catch (Exception ex) { | ||
logger.error(ex.getMessage(), ex); | ||
} | ||
return res; | ||
} | ||
|
||
/** | ||
* 进行http提交 | ||
* @param | ||
* @return | ||
* @throws IOException | ||
* @throws Exception | ||
*/ | ||
private static String connectURL(String url, String param) throws IOException { | ||
String res = ""; | ||
long startt = System.currentTimeMillis(); | ||
HttpURLConnection urlConn = null; | ||
URL url1 = new URL(url); | ||
urlConn = (HttpURLConnection) url1.openConnection(); | ||
urlConn.setRequestMethod("POST"); | ||
urlConn.setDoOutput(true); | ||
OutputStream out = null; | ||
BufferedReader rd = null; | ||
try{ | ||
out = urlConn.getOutputStream(); | ||
out.write(param.getBytes("UTF-8")); | ||
out.flush(); | ||
rd = new BufferedReader(new InputStreamReader(urlConn.getInputStream(), "UTF-8")); | ||
StringBuffer sb = new StringBuffer(); | ||
int ch; | ||
while ((ch = rd.read()) > -1) { | ||
sb.append((char) ch); | ||
} | ||
res = sb.toString().trim(); | ||
}finally { | ||
if (out!=null){ | ||
out.close(); | ||
} | ||
if (rd!=null){ | ||
rd.close(); | ||
} | ||
} | ||
long end = System.currentTimeMillis(); | ||
logger.debug("耗时:" + (end - startt)); | ||
return res; | ||
} | ||
|
||
} |