1.發(fā)送接口
協(xié)議說明
協(xié)議類目 | 說明 |
調(diào)用地址 | https://cloud.10658.com.cn/smsApi/group |
請求方式 | POST(HTTPS) |
編碼格式 | UTF-8 |
Content-Type | application/x-www-form-urlencoded;charset=utf-8 |
請求參數(shù)(Query)
參數(shù)名稱 | 類型 | 是否必填 | 描述 | 示例值 |
appId | String | 是 | 賬戶標(biāo)識。平臺分配給用戶的接口調(diào)用賬戶標(biāo)識,登錄平臺首頁賬號信息欄可查看。 | 2RYN7CQHL1M***** |
appKey | String | 是 | 賬戶密鑰。平臺分配給用戶的接口調(diào)用密鑰,登錄平臺首頁賬號信息欄,校驗(yàn)身份后可查看。 | WVNA4A0***** |
phone | String | 是 | 接收短信的手機(jī)號碼。 (多個(gè)手機(jī)號碼用英文逗號分隔) | 156xxxx1090,156xxxx1091 |
sendTime | String | 否 | 定時(shí)時(shí)間。留空則表示立即發(fā)送,時(shí)間格式為:yyyy-MM-dd HH:mm:ss | 2018-08-21 14:00:00 |
content | String | 是 | 短信內(nèi)容。需包含短信簽名。 (短信內(nèi)容不支持插入表情符號) | 【云通信】您的短信群發(fā)功能已開通,請?jiān)?個(gè)工作日之內(nèi)至平臺進(jìn)行企業(yè)認(rèn)證! |
請求示例
import java.io.IOException;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import com.alibaba.fastjson.JSONObject;
import com.veesing.utils.Config;
/**
* 短信群發(fā)
* @author MWH
*
*/
public class SmsGroupTest {
public static void main(String[] args) {
// 獲取連接
HttpClient client = new HttpClient();
// 短信群發(fā)API接口地址
PostMethod method = new PostMethod("https://cloud.10658.com.cn/smsApi/group");
// 設(shè)置編碼
client.getParams().setContentCharset("UTF-8");
method.setRequestHeader("ContentType", "application/x-www-form-urlencoded;charset=utf-8");
// 將要群發(fā)的手機(jī)號碼,手機(jī)號碼之間請用英文逗號隔開
String phone = "15080929435,17608432793";
// 發(fā)送內(nèi)容
String content = "【云通信】您的短信群發(fā)功能已開通,請?jiān)?個(gè)工作日之內(nèi)至平臺進(jìn)行企業(yè)認(rèn)證!";
// 拼接參數(shù)
NameValuePair[] data = {
new NameValuePair("appId", "2RYN7CQHL1M*****"),
new NameValuePair("appKey", "WVNA4A0*****"),
new NameValuePair("phone", phone),
// 發(fā)送時(shí)間,時(shí)間請務(wù)必大于實(shí)際提交時(shí)間的30分鐘, 立即發(fā)送則不填,
// new NameValuePair("sendTime", "2018-08-21 14:00:00") ,
new NameValuePair("content", content)};
method.setRequestBody(data);
try {
client.executeMethod(method);
String result = method.getResponseBodyAsString();
// 返回結(jié)果
System.out.println(result);
JSONObject jsonObject = JSONObject.parseObject(result);
// 返回1則發(fā)送成功(邏輯操作請根據(jù)接口文檔返回參數(shù)自行判斷)
if (jsonObject.get("returnStatus").equals("1")) {
System.out.println("成功!");
} else {
System.out.println("失敗!");
}
// 釋放連接
method.setRequestHeader("Connection", "close");
method.releaseConnection();
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
正常響應(yīng)示例
{
"returnStatus": "1 ", //狀態(tài)碼
"message": "成功", //狀態(tài)提示信息
"remainPoint": "241", //本次發(fā)送后,賬戶剩余條數(shù)
"taskId": "3313746", //下發(fā)批次ID(唯一)
"successCounts": "1" //成功條數(shù)
}
異常響應(yīng)示例
{
"returnStatus": "0", //狀態(tài)碼
"message": "參數(shù)錯(cuò)誤", //狀態(tài)提示信息
"remainPoint": null, //本次發(fā)送后,賬戶剩余條數(shù)
"taskId": null, //下發(fā)批次ID(唯一)
"successCounts": null //成功條數(shù)
}
狀態(tài)碼定義
狀態(tài)碼 | 狀態(tài)提示信息 |
1 | 發(fā)送成功 |
0 | 賬號或密碼錯(cuò)誤 |
0 | 缺少參數(shù) |
0 | 模板不存在或者未通過 |
0 | 模板id格式不正確 |
0 | 您的賬戶已被鎖定,請聯(lián)系您的專屬客服 |
0 | 余額不足 |
0 | 手機(jī)號碼格式不正確 |
0 | 該號碼今日發(fā)送次數(shù)已達(dá)上限 |
0 | 相同手機(jī)號碼一分鐘之內(nèi)只可發(fā)送一次 |
0 | 當(dāng)日發(fā)送量已超出最大發(fā)送限制 |
0 | 未知原因,請聯(lián)系客服? |
2.回執(zhí)/回復(fù)推送接口
觸發(fā)條件
用戶回復(fù)短信后,觸發(fā)回復(fù)數(shù)據(jù)推送,每回復(fù)一條,則推送一條;運(yùn)營商產(chǎn)生短信回執(zhí)后,觸發(fā)回執(zhí)數(shù)據(jù)推送,每產(chǎn)生一條回執(zhí),則推送一條。
使用說明
回執(zhí)回復(fù)數(shù)據(jù),由短信平臺主動(dòng)推送到用戶設(shè)置的地址上,數(shù)據(jù)格式需遵循標(biāo)準(zhǔn)化數(shù)據(jù)格式。
協(xié)議說明
協(xié)議類目 | 說明 |
調(diào)用方式 | 主動(dòng)回調(diào) |
請求方式 | POST(HTTPS) |
編碼格式 | UTF-8 |
數(shù)據(jù)交互格式 | Key-Value |
Content-Type | application/x-www-form-urlencoded;charset=utf-8 |
回執(zhí)數(shù)據(jù)定義
參數(shù)名稱 | 類型 | 是否必填 | 描述 | 示例值 |
mobile | String | 是 | 用戶手機(jī)號碼 | 1508092**** |
taskid | String | 是 | 下發(fā)批次ID | 123 |
status | String | 是 | 回執(zhí)狀態(tài) 1.發(fā)送成功? 0.發(fā)送失敗 | 1 |
code | String | 否 | 回執(zhí)狀態(tài)碼 | MA:0001 |
receivetime | String | 是 | 回執(zhí)產(chǎn)生時(shí)間 yyyy-MM-dd HH:mm:ss | 2019-07-23 17:00:00 |
回復(fù)數(shù)據(jù)定義
參數(shù)名稱 | 類型 | 是否必填 | 描述 | 示例值 |
mobile | String | 是 | 用戶手機(jī)號碼 | 1508092**** |
taskid | String | 是 | 下發(fā)批次ID | 123 |
content | String | 是 | 回復(fù)內(nèi)容 (用戶回復(fù)的短信內(nèi)容) | 收到 |
receivetime | String | 是 | 回復(fù)上行時(shí)間 yyyy-MM-dd HH:mm:ss | 2019-07-23 17:00:00 |
3.余額查詢接口
協(xié)議說明
協(xié)議類目 | 說明 |
調(diào)用地址 | https://cloud.10658.com.cn/smsApi/group/getBalance |
請求方式 | POST(HTTPS) |
編碼格式 | UTF-8 |
Content-Type | application/x-www-form-urlencoded;charset=utf-8 |
請求參數(shù)(Query)
參數(shù)名稱 | 類型 | 是否必填 | 描述 | 示例值 |
appId | String | 是 | 賬戶標(biāo)識。平臺分配給用戶的接口調(diào)用賬戶標(biāo)識,登錄平臺首頁賬號信息欄可查看。 | 2RYN7CQHL1M***** |
appKey | String | 是 | 賬戶密鑰。平臺分配給用戶的接口調(diào)用密鑰,登錄平臺首頁賬號信息欄,校驗(yàn)身份后可查看。 | WVNA4A0***** |
請求示例
OkHttpClient client = new OkHttpClient().newBuilder()
.followRedirects(false)
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("https://cloud.10658.com.cn/smsApi/group/getBalance?appId=2RYN7CQHL1M*****&appKey=WVNA4A0*****")
.method("POST", body)
.build();
Response response = client.newCall(request).execute();
正常響應(yīng)示例
{
"returnStatus": "1 ", //狀態(tài)碼
"message": "成功", //狀態(tài)提示信息
"remainPoint": "241", //賬戶剩余條數(shù)
"taskId": null,
"successCounts": null
}
異常響應(yīng)示例
{
"returnStatus": "0", //狀態(tài)碼
"message": "參數(shù)錯(cuò)誤", //狀態(tài)提示信息
"remainPoint": null,
"taskId": null,
"successCounts": null
}
狀態(tài)碼定義
狀態(tài)碼 | 狀態(tài)提示信息 |
1 | 提交成功 |
0 | 賬號或密碼錯(cuò)誤 |
0 | 缺少參數(shù) |
0 | 您的賬戶已被鎖定,請聯(lián)系您的專屬客服 |
0 | 未知原因,請聯(lián)系客服? |
0 | IP受限 |