短信发送功能是网站或app开发中常见的需求,如用户注册、账户异常提醒等,那么如何调用短信接口,如何实现短信发送功能呢?下面乐信小编就以调用乐信短信接口为例,来为大家介绍下java开发中,如何实现调用乐信短信接口实短信发送功能。
1、请求乐信短信接口地址
请求乐信短信接口地址是客户接口程序调用时请求的url地址,采用的是https post 接口,地址是:https://www.lx598.com/send2
2、乐信短信接口参数说明
| 字段名称 | 是否必须 | 说明 |
| accName | 是 | 用户名(乐信登录账号) |
| accPwd | 是 |
md5( md5(password) + seed) ) 其中+”表示字符串连接。即:先对密码进行md5加密,将结果与seed值合并,再进行一次md5加密。 两次md5加密后字符串都需转为大写。 例如:若当前时间为2013-08-06 10:20:30,密码为123456, 则:accPwd=md5(md5(123456”) + 20130806102030” ) 则:accPwd=md5(E10ADC3949BA59ABBE56E057F20F883E20130806102030) 则:accPwd= 90BEF25434C97D08132D901D0787A840 |
| seed | 是 | 当前时间,格式:YYYYMMDD HHMISS,例如:20130806102030。 客户时间早于或晚于网关时间超过10分钟,则网关拒绝提交。 |
| aimcodes | 是 | 手机号码(多个手机号码之间用英文半角,”隔开,单次最多支持5000个号码) |
| content | 是 | 内容(内容长度请参照乐信(https://www.lx198.com)发送短信页面提示),注意:在内容的最后需要加上在乐信(https://www.lx198.com)设置并通过审核的签名。如:公司定于1月25日召开今年的企业年会,请务必安排好时间。【动力思维】 |
| schTime | 否 | 定时时间(格式为: 如为空则为即时短信,如需定时时间格式为yyyy-mm-dd hh24:mi:ss”) |
| extno | 否 | 扩展码(保留参数) |
3、返回值
在接收到客户端发送的https请求后,返回以xml的方式返回处理结果。示例为:
<?xml version="1.0" encoding="UTF-8"?> <SendSmsReply> <replyCode>1</replyCode> <replyMsg>发送成功!</replyMsg> <succeedNum>61</succeedNum> <failedNum>0</failedNum> <deduction>3660</deduction> <balance>12028040</balance>
参数说明:
| 字段名称 | 类型 | 说明 |
| replyCode | 文本 | 执行结果 1 成功 0失败 |
| replyMsg | 整型 | 成功或失败原因具体信息 |
| succeedNum | 整型 | 成功条数(当次提交成功的手机号码个数) |
| failedNum | 整型 | 失败条数(当次提交失败的手机号码个数) |
| chargCount | 整型 | 计费条数(当次提交计费的短信条数) |
| deduction | 整型 | 计费金额(当次提交的计费金额,单位:厘) |
| balance | 整型 | 余额(当次提交后的账户余额,单位:厘) |
发送响应Json结果,示例为:
{"balance":"12882680","chargCount":61,"deduction":"3660","failedNum":0,"replyCode":1,"replyMsg":"发送成功!","succeedNum":61}
参数说明:
| 字段名称 | 类型 | 说明 |
| replyCode | 整型 | 执行结果 1 成功 0失败 |
| replyMsg | Text | 成功或失败原因具体信息 |
| succeedNum | 整型 | 成功条数(当次提交成功的手机号码个数) |
| failedNum | 整型 | 失败条数(当次提交失败的手机号码个数) |
| chargCount | 整型 | 计费条数(当次提交计费的短信条数) |
| deduction | 整型 | 计费金额(当次提交的计费金额,单位:厘) |
| balance | 整型 | 余额(当次提交后的账户余额:单位:厘) |
4、乐信java短信接口demo
/**
* 用来格式化seed参数
*/
private static final String dateFormatStr="yyyyMMddHHmmss";
public static void main(String[] args) {
//输出发送结果
System.out.println(LxSdkImpl.sendSms("accName", "accPwd", "mobies", "content",""));
//输出查询报告结果
System.out.println(LxSdkImpl.qryReport("accName", "accPwd"));
//输出查询余额结果
System.out.println(LxSdkImpl.qryBalance("accName", "accPwd"));
//输出查询上行短信的结果
System.out.println(LxSdkImpl.receiveSms("accName", "accPwd"));
}
/**
* 发送短信
* @param accName 用户名
* @param accPwd 密码
* @param seed 当前时间 格式:YYYYMMDD HHMISS 例如:20130806102030
* @param aimcodes 手机号多个手机号之间英文半角逗号隔开
* @param content 内容后加签名
* @param schTime 定时时间格式如:2010-01-01 08:00:00
* @return 服务端返回的结果 ok:业务id 或者 错误代码
*/
public static String sendSms(String accName,String accPwd,String mobies,String content,String schTime){
StringBuffer sb = new StringBuffer("https://sdk.lx198.com/sdk/send2?"); try {
String seed=new SimpleDateFormat(dateFormatStr).format(new Date());
sb.append("&accName="+accName);
sb.append("&seed="+seed);
sb.append("&accPwd="+MD5.getMd5String(MD5.getMd5String(accPwd)+seed));
sb.append("&aimcodes="+mobies);
sb.append("&schTime="+URLEncoder.encode(schTime,"UTF-8")); //空格标点符号做encode转换
sb.append("&content="+URLEncoder.encode(content,"UTF-8")); //中文做encode转换
URL url = new URL(sb.toString());
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
return in.readLine();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
乐信短信接口提供免费测试,注册账户即送100条免费测试短信,另提供一对一技术支持。在线免费测试地址:https://www.lx598.com/dxyzm.html