价格不是我们的优势,品质永远是我们的追求!
当前位置:首页行业快讯 > java调用短信接口实现短信发送功能
java调用短信接口实现短信发送功能
来源:动力思维乐信  时间:2018-02-26 17:14

    短信发送功能是网站或app开发中常见的需求,如用户注册、账户异常提醒等,那么如何调用短信接口,如何实现短信发送功能呢?下面乐信小编就以调用乐信短信接口为例,来为大家介绍下java开发中,如何实现调用乐信短信接口实短信发送功能。

    1、请求乐信短信接口地址

    请求乐信短信接口地址是客户接口程序调用时请求的url地址,采用的是https post 接口,地址是:http://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 内容(内容长度请参照乐信(http://www.lx198.com)发送短信页面提示),注意:在内容的最后需要加上在乐信(http://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("http://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条免费测试短信,另提供一对一技术支持。在线免费测试地址:http://www.lx598.com/dxyzm.html