1.發(fā)送接口
協(xié)議說明
協(xié)議類目 | 說明 |
調(diào)用地址 | https://cloud.10658.com.cn/smsApi/custom |
請求方式 | POST(HTTPS) |
編碼格式 | UTF-8 |
Content-Type | application/x-www-form-urlencoded;charset=utf-8 |
請求參數(shù)(Query)
參數(shù)名稱 | 類型 | 是否必填 | 描述 | 示例值 |
appId | String | 是 | 賬戶標識。平臺分配給用戶的接口調(diào)用賬戶標識,登錄平臺首頁賬號信息欄可查看。 | 2RYN7CQHL1M***** |
appKey | String | 是 | 賬戶密鑰。平臺分配給用戶的接口調(diào)用密鑰,登錄平臺首頁賬號信息欄,校驗身份后可查看。 | WVNA4A0***** |
sendTime | String | 否 | 定時時間。留空則表示立即發(fā)送,時間格式為:yyyy-MM-dd HH:mm:ss | 2018-08-21 14:00:00 |
smsId | String | 是 | 定制短信模板id。 (平臺申請審核通過后可用) | 123 |
content | String | 是 | 號碼及變量值。 (content字符串由手機號和變量值組成,手機號碼為固定key,用于存儲用戶手機號;其余的key名稱需要和平臺個性化模板中的變量名稱一一對應(yīng)) (短信內(nèi)容不支持插入表情符號) | 如模板為:【云通信】尊敬的${姓名}你好,您本月實發(fā)薪資為:${工資},請注意查收! 則提交content為: [{"手機號碼":"15831471961","姓名":"張三","工資":"10000.00"},{"手機號碼":"13076523432","姓名":"李四","工資":"20000.00"}] |
請求示例
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/custom");
// 設(shè)置編碼
client.getParams().setContentCharset("UTF-8");
method.setRequestHeader("ContentType", "application/x-www-form-urlencoded;charset=utf-8");
// 發(fā)送內(nèi)容
String content = "[{"手機號碼":"15831471961","姓名":"張三","工資":"10000.00"},{"手機號碼":"13076523432","姓名":"李四","工資":"20000.00"}]";
// 拼接參數(shù)
NameValuePair[] data = {
new NameValuePair("appId", "2RYN7CQHL1M*****"),
new NameValuePair("appKey", "WVNA4A0*****"),
new NameValuePair("smsId", "123"),
// 發(fā)送時間,時間請務(wù)必大于實際提交時間的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ù)錯誤", //狀態(tài)提示信息
"remainPoint": null, //本次發(fā)送后,賬戶剩余條數(shù)
"taskId": null, //下發(fā)批次ID(唯一)
"successCounts": null //成功條數(shù)
}
狀態(tài)碼定義
狀態(tài)碼 | 狀態(tài)提示信息 |
1 | 發(fā)送成功 |
0 | 賬號或密碼錯誤 |
0 | 缺少參數(shù) |
0 | 模板不存在或者未通過 |
0 | 模板id格式不正確 |
0 | 您的賬戶已被鎖定,請聯(lián)系您的專屬客服 |
0 | 余額不足 |
0 | 手機號碼格式不正確 |
0 | 該號碼今日發(fā)送次數(shù)已達上限 |
0 | 相同手機號碼一分鐘之內(nèi)只可發(fā)送一次 |
0 | 當日發(fā)送量已超出最大發(fā)送限制 |
0 | 未知原因,請聯(lián)系客服? |
2.回執(zhí)/回復推送接口
觸發(fā)條件
用戶回復短信后,觸發(fā)回復數(shù)據(jù)推送,每回復一條,則推送一條;運營商產(chǎn)生短信回執(zhí)后,觸發(fā)回執(zhí)數(shù)據(jù)推送,每產(chǎn)生一條回執(zhí),則推送一條。
使用說明
回執(zhí)回復數(shù)據(jù),由短信平臺主動推送到用戶設(shè)置的地址上,數(shù)據(jù)格式需遵循標準化數(shù)據(jù)格式。
協(xié)議說明
協(xié)議類目 | 說明 |
調(diào)用方式 | 主動回調(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 | 是 | 用戶手機號碼 | 1508092**** |
taskid | String | 是 | 下發(fā)批次ID | 123 |
status | String | 是 | 回執(zhí)狀態(tài) 1.發(fā)送成功? 0.發(fā)送失敗 | 1 |
receivetime | String | 是 | 回執(zhí)產(chǎn)生時間 yyyy-MM-dd HH:mm:ss | 2019-07-23 17:00:00 |
回復數(shù)據(jù)定義
參數(shù)名稱 | 類型 | 是否必填 | 描述 | 示例值 |
mobile | String | 是 | 用戶手機號碼 | 1508092**** |
taskid | String | 是 | 下發(fā)批次ID | 123 |
content | String | 是 | 回復內(nèi)容 (用戶回復的短信內(nèi)容) | 收到 |
receivetime | String | 是 | 回復上行時間 yyyy-MM-dd HH:mm:ss | 2019-07-23 17:00:00 |
3.余額查詢接口
協(xié)議說明
協(xié)議類目 | 說明 |
調(diào)用地址 | https://cloud.10658.com.cn/smsApi/custom/getBalance |
請求方式 | POST(HTTPS) |
編碼格式 | UTF-8 |
Content-Type | application/x-www-form-urlencoded;charset=utf-8 |
請求參數(shù)(Query)
參數(shù)名稱 | 類型 | 是否必填 | 描述 | 示例值 |
appId | String | 是 | 賬戶標識。平臺分配給用戶的接口調(diào)用賬戶標識,登錄平臺首頁賬號信息欄可查看。 | 2RYN7CQHL1M***** |
appKey | String | 是 | 賬戶密鑰。平臺分配給用戶的接口調(diào)用密鑰,登錄平臺首頁賬號信息欄,校驗身份后可查看。 | 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/custom/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, //下發(fā)批次ID(唯一)
"successCounts": null //成功條數(shù)
}
異常響應(yīng)示例
{
"returnStatus": "0", //狀態(tài)碼
"message": "參數(shù)錯誤", //狀態(tài)提示信息
"remainPoint": null, //賬戶剩余條數(shù)
"taskId": null, //下發(fā)批次ID(唯一)
"successCounts": null //成功條數(shù)
}
狀態(tài)碼定義
狀態(tài)碼 | 狀態(tài)提示信息 |
1 | 提交成功 |
0 | 賬號或密碼錯誤 |
0 | 缺少參數(shù) |
0 | 您的賬戶已被鎖定,請聯(lián)系您的專屬客服 |
0 | 未知原因,請聯(lián)系客服? |
0 | IP受限 |