短信發(fā)送功能是網(wǎng)站或app開發(fā)中常見的需求,如用戶注冊(cè)、賬戶異常提醒等,那么如何調(diào)用短信接口,如何實(shí)現(xiàn)短信發(fā)送功能呢?下面樂信小編就以調(diào)用樂信短信接口為例,來為大家介紹下java開發(fā)中,如何實(shí)現(xiàn)調(diào)用樂信短信接口實(shí)短信發(fā)送功能。
1、請(qǐng)求樂信短信接口地址
請(qǐng)求樂信短信接口地址是客戶接口程序調(diào)用時(shí)請(qǐng)求的url地址,采用的是https post 接口,地址是:http://www.iium.cn/send2
2、樂信短信接口參數(shù)說明
| 字段名稱 | 是否必須 | 說明 |
| accName | 是 | 用戶名(樂信登錄賬號(hào)) |
| accPwd | 是 |
md5( md5(password) + seed) ) 其中+”表示字符串連接。即:先對(duì)密碼進(jìn)行md5加密,將結(jié)果與seed值合并,再進(jìn)行一次md5加密。 兩次md5加密后字符串都需轉(zhuǎn)為大寫。 例如:若當(dāng)前時(shí)間為2013-08-06 10:20:30,密碼為123456, 則:accPwd=md5(md5(123456”) + 20130806102030” ) 則:accPwd=md5(E10ADC3949BA59ABBE56E057F20F883E20130806102030) 則:accPwd= 90BEF25434C97D08132D901D0787A840 |
| seed | 是 | 當(dāng)前時(shí)間,格式:YYYYMMDD HHMISS,例如:20130806102030。 客戶時(shí)間早于或晚于網(wǎng)關(guān)時(shí)間超過10分鐘,則網(wǎng)關(guān)拒絕提交。 |
| aimcodes | 是 | 手機(jī)號(hào)碼(多個(gè)手機(jī)號(hào)碼之間用英文半角,”隔開,單次最多支持5000個(gè)號(hào)碼) |
| content | 是 | 內(nèi)容(內(nèi)容長度請(qǐng)參照樂信(https://www.lx198.com)發(fā)送短信頁面提示),注意:在內(nèi)容的最后需要加上在樂信(https://www.lx198.com)設(shè)置并通過審核的簽名。如:公司定于1月25日召開今年的企業(yè)年會(huì),請(qǐng)務(wù)必安排好時(shí)間。【動(dòng)力思維】 |
| schTime | 否 | 定時(shí)時(shí)間(格式為: 如為空則為即時(shí)短信,如需定時(shí)時(shí)間格式為yyyy-mm-dd hh24:mi:ss”) |
| extno | 否 | 擴(kuò)展碼(保留參數(shù)) |
3、返回值
在接收到客戶端發(fā)送的https請(qǐng)求后,返回以xml的方式返回處理結(jié)果。示例為:
<?xml version="1.0" encoding="UTF-8"?> <SendSmsReply> <replyCode>1</replyCode> <replyMsg>發(fā)送成功!</replyMsg> <succeedNum>61</succeedNum> <failedNum>0</failedNum> <deduction>3660</deduction> <balance>12028040</balance>
參數(shù)說明:
| 字段名稱 | 類型 | 說明 |
| replyCode | 文本 | 執(zhí)行結(jié)果 1 成功 0失敗 |
| replyMsg | 整型 | 成功或失敗原因具體信息 |
| succeedNum | 整型 | 成功條數(shù)(當(dāng)次提交成功的手機(jī)號(hào)碼個(gè)數(shù)) |
| failedNum | 整型 | 失敗條數(shù)(當(dāng)次提交失敗的手機(jī)號(hào)碼個(gè)數(shù)) |
| chargCount | 整型 | 計(jì)費(fèi)條數(shù)(當(dāng)次提交計(jì)費(fèi)的短信條數(shù)) |
| deduction | 整型 | 計(jì)費(fèi)金額(當(dāng)次提交的計(jì)費(fèi)金額,單位:厘) |
| balance | 整型 | 余額(當(dāng)次提交后的賬戶余額,單位:厘) |
發(fā)送響應(yīng)Json結(jié)果,示例為:
{"balance":"12882680","chargCount":61,"deduction":"3660","failedNum":0,"replyCode":1,"replyMsg":"發(fā)送成功!","succeedNum":61}
參數(shù)說明:
| 字段名稱 | 類型 | 說明 |
| replyCode | 整型 | 執(zhí)行結(jié)果 1 成功 0失敗 |
| replyMsg | Text | 成功或失敗原因具體信息 |
| succeedNum | 整型 | 成功條數(shù)(當(dāng)次提交成功的手機(jī)號(hào)碼個(gè)數(shù)) |
| failedNum | 整型 | 失敗條數(shù)(當(dāng)次提交失敗的手機(jī)號(hào)碼個(gè)數(shù)) |
| chargCount | 整型 | 計(jì)費(fèi)條數(shù)(當(dāng)次提交計(jì)費(fèi)的短信條數(shù)) |
| deduction | 整型 | 計(jì)費(fèi)金額(當(dāng)次提交的計(jì)費(fèi)金額,單位:厘) |
| balance | 整型 | 余額(當(dāng)次提交后的賬戶余額:單位:厘) |
4、樂信java短信接口demo
/**
* 用來格式化seed參數(shù)
*/
private static final String dateFormatStr="yyyyMMddHHmmss";
public static void main(String[] args) {
//輸出發(fā)送結(jié)果
System.out.println(LxSdkImpl.sendSms("accName", "accPwd", "mobies", "content",""));
//輸出查詢報(bào)告結(jié)果
System.out.println(LxSdkImpl.qryReport("accName", "accPwd"));
//輸出查詢余額結(jié)果
System.out.println(LxSdkImpl.qryBalance("accName", "accPwd"));
//輸出查詢上行短信的結(jié)果
System.out.println(LxSdkImpl.receiveSms("accName", "accPwd"));
}
/**
* 發(fā)送短信
* @param accName 用戶名
* @param accPwd 密碼
* @param seed 當(dāng)前時(shí)間 格式:YYYYMMDD HHMISS 例如:20130806102030
* @param aimcodes 手機(jī)號(hào)多個(gè)手機(jī)號(hào)之間英文半角逗號(hào)隔開
* @param content 內(nèi)容后加簽名
* @param schTime 定時(shí)時(shí)間格式如:2010-01-01 08:00:00
* @return 服務(wù)端返回的結(jié)果 ok:業(yè)務(wù)id 或者 錯(cuò)誤代碼
*/
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")); //空格標(biāo)點(diǎn)符號(hào)做encode轉(zhuǎn)換
sb.append("&content="+URLEncoder.encode(content,"UTF-8")); //中文做encode轉(zhuǎn)換
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;
}
樂信短信接口提供免費(fèi)測試,注冊(cè)賬戶即送100條免費(fèi)測試短信,另提供一對(duì)一技術(shù)支持。在線免費(fèi)測試地址:http://www.iium.cn/dxyzm.html