本文目录一览:
手机短信验证码java接口怎么写
这个首先你要确定一下短信平台,他们会给你提供短信实现的接口文档。 比如:
public static String doPost(String reqUrl, Map parameters, String recvEncoding) {
HttpURLConnection url_con = null;
String responseContent = null;
try {
StringBuffer params = new StringBuffer();
Iterator iter = parameters.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry element = (Map.Entry) iter.next();
params.append(element.getKey().toString());
params.append("=");
params.append(URLEncoder.encode(element.getValue().toString(), requestEncoding));
params.append("&");
}
if (params.length() > 0) {
params = params.deleteCharAt(params.length() - 1);
}
URL url = new URL(reqUrl);
url_con = (HttpURLConnection) url.openConnection();
url_con.setRequestMethod("POST");
System.setProperty("sun.net.client.defaultConnectTimeout", String.valueOf(connectTimeOut));
System.setProperty("sun.net.client.defaultReadTimeout", String.valueOf(readTimeOut));
url_con.setDoOutput(true);
byte[] b = params.toString().getBytes();
url_con.getOutputStream().write(b, 0, b.length);
url_con.getOutputStream().flush();
url_con.getOutputStream().close();
InputStream in = url_con.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(in, recvEncoding));
String tempLine = rd.readLine();
StringBuffer tempStr = new StringBuffer();
String crlf = System.getProperty("line.separator");
while (tempLine != null) {
tempStr.append(tempLine);
tempStr.append(crlf);
tempLine = rd.readLine();
}
responseContent = tempStr.toString();
rd.close();
in.close();
} catch (IOException localIOException) {
} finally {
if (url_con != null) {
url_con.disconnect();
}
}
return responseContent;
}
public static String sendTelCode(String mobile, String telcode) {
Map<String, String> map = new HashMap<>();
map.put("account", "Babo");
map.put("mobile", mobile);
map.put("pswd", "D3dddD");
try {
map.put("msg", java.net.URLEncoder.encode("您的验证码是" + telcode + ",若非本人操作请忽略", "utf-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String getValue = doPost("", map, "UTF-8");
System.out.println(getValue);
return getValue;
}
中国移动短信接口java怎么调用
java调用运营商的接口参考:
<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>
<%
String PostData = "sname=kwsms&pwd=kwsms&corpid=&sprdid=101&sdst=13910862579&smsg=" + java.net.URLEncoder.encode("短信内容", "utf-8");
String ret = cn.umob.sms.Send.SMS(PostData, "");
out.println(ret);
%>
</h1>
</body>
</html>
java短信接口发送的这三种短信,你收到过几种
不同的行业应用java短信接口的用途不一样,但大多数都是用于传递消息、加强服务、提高安全性,因而一般情况下java短信接口会发送通知类短信、问候类短信、营销类短信及广告类短信,具体的让我们一起来了解下吧。
- 通知型短信 应用java短信接口发送通知类短信的行业很多,比如教育行业会给学生发送放假通知、开学通知或者考试通知等;一些人数多的大型企业常常要应用java短信接口给员工发送开会通知、内部业绩通报、内部员工激励等信息;快递物流行业则需要发送快递领取通知短信等,此外一些婚恋机构平台或者某个家庭也可以应用java短信接口发送婚礼通知短信,比如:我亲爱的同学、朋友们,本人郑重决定于XX日终结单身生活,迈向婚姻的殿堂,在那激动人心的时刻里,希望你能来见证,为我举杯祝福!地址XX!可别迟到哦!
- 问候型短信 这类短信往往是企业出于服务的目的而发送的,为的是维护和客户之间的关系,加强跟客户之间的黏性,因而每到了过年过节或者特殊时间的时候,企业就会应用java短信接口给用户发送祝福问候类的短信,以便让用户可以想起自己,借此加深用户对企业的忠诚度还有依赖性。这类短信比较柔和,没有很强的目的性,所以比较容易让用户接受。
- 促销型短信 这是平时市民接收很多的一种短信类型了,这种短信一般都是企业出于营销推广的目的发送的,为的是刺激客户下单,或者让客户增加重复购买的的机率,因为java短信接口发送的促销短信正好是很多市民需要的,因而效果非常好,很多企业也因此收获了不少回头客。
java 通用短信接口思路
这个也没有什么复杂的。各个接口提供的API功能一致,只是程序上要设计的合理; 程序上对需要的短信发送功能进行封装,就是说,在平台上只有平台定义的发送方法或者类,那如何把这些不同的接口API集合起来,那是否可以设计成可配置的功能,比如你要变更短信猫的接口,只是简单的把短信猫所提供的JAR导入的到平台,把需要的功能方法(发送、接收、回执等)用可变的配置机制,把相关的函数方法配置到文件中。这样不就可以了;
java程序如何对接巴卜短信接口
他们的接口不限制编程语言的,无论你是JAVA、C、VB、.NET等都可以实现对接的。
短信接口是什么东西?
我来给你介绍一下短信接口就是短信SDK、API,以下就是我编辑的java短信接口,已经测试请求步骤。
- 单条短信接口:此接口为客户发送单条短信提供支持
- 安全接口:安全接口的数据传输经过加密、压缩,能够保障数据传输安全,如果有安全性要求,建议选用安全接口;
- 安全接口所接收、响应的数据,均经过AES加密,在数据加密前允许使用gzip算法压缩数据。
- 数据加密方式:AES;
- 加密算法:AES/ECB/PKCS5Padding;
- 压缩算法:gzip 【建议进行数据压缩】;
请求
- 链接
- 参数 | 参数 | 类型 | 传输方式 | 描述 | |------|------|----------|------| | appId | String | http头信息传输 | 用户Appid(必填) | | gzip | String | http头信息传输 | 是否启用GZIP压缩【非必填】<br>on :是 | | encode | String | http头信息传输 | 字符集【非必填】<br>如果不填,默认UTF-8编码集,此字符集必须与实际传输数据字符集相同 | | mobile | String | 1、将所有参数拼装成json串后;<br>2、将json串进行AES加密;<br>3、加密后的byte数组通过post直接传输 | 手机号(必填) | | content | String | 短信内容(必填) | | timerTime | String | 定时发送时间(选填,定时时间在90天之内)<br>格式:yyyy-MM-dd HH:mm:ss<br>如果不填,则为即时发送 | | customSmsId | String | 自定义消息ID(选填)<br>最长32位 | | extendedCode | String | 扩展码(选填)<br>最长支持12位,如果最终号码长度超长,会截取扩展码,请根据我司建议位数提交 | | requestTime | long | 请求时间(必填)<br>格式:时间毫秒数<br>安全验证字段,防止同一个请求重复提交;<br>短信平台根据requestTime与requestValidPeriod共同判断请求是否有效,针对无效的请求,短信平台响应错误;<br>判断方法:请求时间 + 请求有效时间 > 当前时间 ? 有效 : 无效; | | requestValidPeriod | int | 请求有效时间(必填)[单位:秒] |
示例
- 将参数拼装成json串
{
"mobile":"15538850000",
"content":"【清华大学】 i love you ! ",
"timerTime":"2017-03-15 12:00:00",
"extendedCode":"112",
"customSmsId":"2017010709302911",
"requestTime":1490588340964,
"requestValidPeriod":30
}
- 将json串转化为UTF-8编码的byte数组
Byte[] data = json.toBytes["UTF-8"];
- 如果需要gzip压缩,则压缩数据,并放入标示,[非必需步骤]
data = gzip.com(data);
http.setHead("gzip","on");
- 通过AES加密
data = AES.encryption(secretKey, data, 算法);
- 将appId放入http head
http.setHead("appId", appId);
- 通过http post方法传输
Byte[] response = http.post(url, data);
响应
参数
参数 | 类型 | 传输方式 | 描述 |
---|---|---|---|
result | String | http头信息传输 | 请求状态码,详见本文档《接口状态码表》<br>当result不是SUCCESS时,不会响应下面参数数据。 |
mobile | String | 传输过来的数据是加密后的byte数组手机号 | |
smsId | String | 消息ID | |
customSmsId | String | 客户自定义SMSID |
示例
- 从http头信息获取请求状态,如果code不是SUCCESS,不用进行下面几步
String code = http.getHead("reasult");
- 从响应流获取响应数据,并解密
Byte[] data = Response.getdata();
data = AES.decryption(secretKey, data, 算法);
- 如果请求信息中有压缩标示,返回的数据也是压缩过的,需要解压缩;[非必须步骤]
data = GZIP.dcom(data);
- 将数据转换成JSON串
String json = new String(data, "UTF-8");
{
"mobile":"15538850000",
"smsId":"20170392833833891100",
"customSmsId":"20170392833833891100"
}
接入指导
步骤一:登录亿美软通官网
步骤二:注册并获取客户标识(AppId)和客户密钥(secretKey)账号
步骤三:参照接口文档和DEMO,对接接口并测试
步骤四:测试通过,正式上线,充值使用