短信发送功能是网站或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