短信发送接口2.0
用户通过HTTP的POST方式提交短信发送请求。采用UTF-8编码。
请求地址
环境 | HTTP请求地址 |
---|---|
正式环境 | http://api.1cloudsp.com/api/v2/send |
请求参数
名称 | 类型 | 是否必须 | 示例值 | 描述 |
---|---|---|---|---|
token | String | 必须 | 0b83811fb2db238ea1ace9 206d431db0 |
MD5(AccessSecret + random + timestamp)通过MD5消息摘要算法计算的结果,AccessSecret是平台分配给用户的开发秘钥,random是本次请求携带的随机串,timestamp是本次请求携带的当前时间戳 |
accesskey | String | 必须 | y0r3Ize4tzltVYAL | 平台分配给用户的开发Key,登录系统首页可通过"开发key"功能获取 |
timestamp | String | 必须 | 1465227303037 | 发送请求时的系统时间戳,参入token的计算 |
random | String | 必须 | 23rfsdf332 | 发送请求时产生的随机串,参入token的计算 |
signId | String | 可选 | 123456 | 平台上申请的接口短信签名Id(须审核通过)
注:signId和sign选择其一,不可全为空值 |
sign | String | 可选 | 【测试签名】 | 平台上申请的接口短信签名(须审核通过) |
templateId | String | 可选 | 123456 | 平台上申请的接口短信模板Id(须审核通过)
注:如果templateId不填写,则content字段必须是完整短信内容,发送后会进入人工审核 |
mobile | String | 可选 | 13900000000,13900000001 | 接收短信的手机号码,多个号码以半角逗号,隔开 |
content | String | 可选 | 先生##9:40##快递公司##1234567
(示例模板:{1}您好,您的订单于{2}已通过{3}发货,运单号{4}) |
发送的短信内容是模板变量内容,多个变量中间用##或者$$隔开,采用utf8编码 |
data | json字符串 | 可选 | {"13700000001":"女士##10:10##物流公司##000000","13700000000":"先生##9:40##快递公司##1234567"} | 该字段用于发送个性短信,mobile和content字段不需要填写,该字段json字符串,json的key是手机号,value是短信内容变量,等同于上面的content 包含多个变量中间用##或者$$隔开,采用utf8编码 |
scheduleSendTime | String | 可选 | 2016-01-01 18:00:00 | 短信定时发送时间,格式为:2016-01-01 18:00:00;参数如果为空表示立即发送 |
请求示例
/* ---示例代码----*/package apiserver; import java.net.URLEncoder; import java.security.MessageDigest; import java.util.Random; import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.params.HttpMethodParams; import com.alibaba.fastjson.JSONObject; public class ApiTest { //普通短信 private void sendsms() throws Exception { HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("http://api.1cloudsp.com/api/v2/send"); postMethod.getParams().setContentCharset("UTF-8"); postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,new DefaultHttpMethodRetryHandler()); String accesskey = "y0r3Ize4tzltVYAL"; //用户开发key String accessScrect = "TKRLnRPpuuQgmKcKhrqttB7sweyBJu5t"; //用户开发秘钥 String random = random(10); //随机字符串 String timestamp = ""+System.currentTimeMillis(); //当前时间戳 String token = MD5(accessScrect+random+timestamp); //计算token NameValuePair[] data = { new NameValuePair("token", token), new NameValuePair("accesskey", accesskey), new NameValuePair("timestamp", timestamp), new NameValuePair("random", random), new NameValuePair("signId", "123"), new NameValuePair("templateId", "100"), new NameValuePair("mobile", "13900000001,13900000002"), new NameValuePair("content", URLEncoder.encode("先生##9:40##快递公司##1234567", "utf-8"))//(示例模板:{1}您好,您的订单于{2}已通过{3}发货,运单号{4}) }; postMethod.setRequestBody(data); int statusCode = httpClient.executeMethod(postMethod); System.out.println("statusCode: " + statusCode + ", body: " + postMethod.getResponseBodyAsString()); } //个性短信 private void sendsms2() throws Exception { HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("http://api.1cloudsp.com/api/v2/send"); postMethod.getParams().setContentCharset("UTF-8"); postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,new DefaultHttpMethodRetryHandler()); String accesskey = "y0r3Ize4tzltVYAL"; //用户开发key String accessScrect = "TKRLnRPpuuQgmKcKhrqttB7sweyBJu5t"; //用户开发秘钥 String random = random(10); //随机字符串 String timestamp = ""+System.currentTimeMillis(); //当前时间戳 String token = MD5(accessScrect+random+timestamp); //计算token //组装个性短信内容 JSONObject jsonObj = new JSONObject(); jsonObj.put("13700000000","先生##9:40##快递公司##1234567"); jsonObj.put("13700000001","女士##10:10##物流公司##000000");//(示例模板:{1}您好,您的订单于{2}已通过{3}发货,运单号{4}) NameValuePair[] data = { new NameValuePair("token", token), new NameValuePair("accesskey", accesskey), new NameValuePair("timestamp", timestamp), new NameValuePair("random", random), new NameValuePair("signId", "123"), new NameValuePair("templateId", "100"), new NameValuePair("data", URLEncoder.encode(jsonObj.toString(), "utf-8")) }; postMethod.setRequestBody(data); int statusCode = httpClient.executeMethod(postMethod); System.out.println("statusCode: " + statusCode + ", body: " + postMethod.getResponseBodyAsString()); } public static void main(String[] args) throws Exception { ApiTest t = new ApiTest(); // //普通短信 // t.sendsms(); //个性短信 t.sendsms2(); } //生成MD5加密算法 public static String MD5(String value) throws Exception { StringBuffer md5StrBuff = new StringBuffer(); MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.update(value.getBytes("UTF-8")); byte[] result = md5.digest(); for (int i = 0; i < result.length; i++) { if (Integer.toHexString(0xFF & result[i]).length() == 1) { md5StrBuff.append("0").append(Integer.toHexString(0xFF & result[i])); } else { md5StrBuff.append(Integer.toHexString(0xFF & result[i])); } } return md5StrBuff.toString(); } private static final char[] cs = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; //生成随机字符串 public static String random(int length) { StringBuilder token = new StringBuilder(); Random random = new Random(); for (int i = 0; i < length; i++) { token.append(cs[random.nextInt(cs.length - 1)]); } return token.toString(); } }
/* ---示例代码----*/
JAVA格式
响应示例
{
code: "0",
msg: "SUCCESS",
batchId:""
}
JSON格式:code如果为0表示请求成功,非0表示请求失败,参考错误码列表查看具体失败原因;
batchId为批次id,如果单次提交的是一个手机号,batchId默认为手机号
国际短信发送接口
用户通过HTTP的POST方式提交短信发送请求。编码采用UTF-8编码。
请求地址
环境 | HTTP请求地址 |
---|---|
正式环境 | http://api.1cloudsp.com/intl/api/v2/send |
请求参数
名称 | 类型 | 是否必须 | 示例值 | 描述 |
---|---|---|---|---|
token | String | 必须 | 0b83811fb2db238ea1ace9 206d431db0 |
MD5(AccessSecret + random + timestamp)通过MD5消息摘要算法计算的结果,AccessSecret是平台分配给用户的开发秘钥,random是本次请求携带的随机串,timestamp是本次请求携带的当前时间戳 |
accesskey | String | 必须 | y0r3Ize4tzltVYAL | 平台分配给用户的开发Key,登录系统首页可通过"开发key"功能获取 |
timestamp | String | 必须 | 1465227303037 | 发送请求时的系统时间戳,参入token的计算 |
random | String | 必须 | 23rfsdf332 | 发送请求时产生的随机串,参入token的计算 |
signId | String | 可选 | 123456 | 平台上申请的国际短信签名Id(须审核通过) |
sign | String | 可选 | 【测试签名】 | 平台上申请的国际短信签名(须审核通过)
注,signId和sign选择其一,不可全为空值 |
templateId | String | 可选 | 123456 | 平台上申请的国际短信模板Id(须审核通过)
注:如果templateId不填写,则content字段必须是完整短信内容,发送后会进入人工审核 |
mobile | String | 可选 | 8613900000000,8613900000001 | 接收短信的手机号码,多个号码以半角逗号,隔开 |
content | String | 可选 | 先生##9:40##快递公司##1234567
(示例模板:{1}您好,您的订单于{2}已通过{3}发货,运单号{4}) |
发送的短信内容是模板变量内容,多个变量中间用##或者$$隔开,采用utf8编码 |
data | json字符串 | 可选 | {"13700000001":"女士##10:10##物流公司##000000","13700000000":"先生##9:40##快递公司##1234567"} | 该字段用于发送个性短信,mobile和content字段不需要填写,该字段json字符串,json的key是手机号,value是短信内容变量,等同于上面的content 包含多个变量中间用##或者$$隔开,采用utf8编码 |
scheduleSendTime | String | 可选 | 2016-01-01 18:00:00 | 短信定时发送时间,格式为:2016-01-01 18:00:00;参数如果为空表示立即发送 |
请求示例
/* ---示例代码----*/package apiserver; import java.net.URLEncoder; import java.security.MessageDigest; import java.util.Random; import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.params.HttpMethodParams; import com.alibaba.fastjson.JSONObject; public class ApiTest { //普通短信 private void sendsms() throws Exception { HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("http://api.1cloudsp.com/intl/api/v2/send"); postMethod.getParams().setContentCharset("UTF-8"); postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,new DefaultHttpMethodRetryHandler()); String accesskey = "y0r3Ize4tzltVYAL"; //用户开发key String accessScrect = "TKRLnRPpuuQgmKcKhrqttB7sweyBJu5t"; //用户开发秘钥 String random = random(10); //随机字符串 String timestamp = ""+System.currentTimeMillis(); //当前时间戳 String token = MD5(accessScrect+random+timestamp); //计算token NameValuePair[] data = { new NameValuePair("token", token), new NameValuePair("accesskey", accesskey), new NameValuePair("timestamp", timestamp), new NameValuePair("random", random), new NameValuePair("signId", "123"), new NameValuePair("templateId", "100"), new NameValuePair("mobile", "8613900000001,8613900000002"), new NameValuePair("content", URLEncoder.encode("先生##9:40##快递公司##1234567", "utf-8"))//(示例模板:{1}您好,您的订单于{2}已通过{3}发货,运单号{4}) }; postMethod.setRequestBody(data); int statusCode = httpClient.executeMethod(postMethod); System.out.println("statusCode: " + statusCode + ", body: " + postMethod.getResponseBodyAsString()); } //个性短信 private void sendsms2() throws Exception { HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("http://api.1cloudsp.com/api/v2/send"); postMethod.getParams().setContentCharset("UTF-8"); postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,new DefaultHttpMethodRetryHandler()); String accesskey = "y0r3Ize4tzltVYAL"; //用户开发key String accessScrect = "TKRLnRPpuuQgmKcKhrqttB7sweyBJu5t"; //用户开发秘钥 String random = random(10); //随机字符串 String timestamp = ""+System.currentTimeMillis(); //当前时间戳 String token = MD5(accessScrect+random+timestamp); //计算token //组装个性短信内容 JSONObject jsonObj = new JSONObject(); jsonObj.put("8613700000000","先生##9:40##快递公司##1234567"); jsonObj.put("8613700000001","女士##10:10##物流公司##000000");//(示例模板:{1}您好,您的订单于{2}已通过{3}发货,运单号{4}) NameValuePair[] data = { new NameValuePair("token", token), new NameValuePair("accesskey", accesskey), new NameValuePair("timestamp", timestamp), new NameValuePair("random", random), new NameValuePair("signId", "123"), new NameValuePair("templateId", "100"), new NameValuePair("data", URLEncoder.encode(jsonObj.toString(), "utf-8")) }; postMethod.setRequestBody(data); int statusCode = httpClient.executeMethod(postMethod); System.out.println("statusCode: " + statusCode + ", body: " + postMethod.getResponseBodyAsString()); } public static void main(String[] args) throws Exception { ApiTest t = new ApiTest(); // //普通短信 // t.sendsms(); //个性短信 t.sendsms2(); } //生成MD5加密算法 public static String MD5(String value) throws Exception { StringBuffer md5StrBuff = new StringBuffer(); MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.update(value.getBytes("UTF-8")); byte[] result = md5.digest(); for (int i = 0; i < result.length; i++) { if (Integer.toHexString(0xFF & result[i]).length() == 1) { md5StrBuff.append("0").append(Integer.toHexString(0xFF & result[i])); } else { md5StrBuff.append(Integer.toHexString(0xFF & result[i])); } } return md5StrBuff.toString(); } private static final char[] cs = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; //生成随机字符串 public static String random(int length) { StringBuilder token = new StringBuilder(); Random random = new Random(); for (int i = 0; i < length; i++) { token.append(cs[random.nextInt(cs.length - 1)]); } return token.toString(); } }
/* ---示例代码----*/
JAVA格式
响应示例
{
code: "0",
msg: "SUCCESS",
batchId:""
}
JSON格式:code如果为0表示请求成功,非0表示请求失败,参考错误码列表查看具体失败原因;
batchId为批次id,如果单次提交的是一个手机号,batchId默认为手机号
语音验证码发送接口
用户通过HTTP的POST方式提交语音验证码发送请求。编码采用UTF-8编码。
请求地址
环境 | HTTP请求地址 |
---|---|
正式环境 | http://api.1cloudsp.com/voice/send |
请求参数
名称 | 类型 | 是否必须 | 示例值 | 描述 |
---|---|---|---|---|
token | String | 必须 | 0b83811fb2db238ea1ace 9206d431db0 |
MD5(AccessSecret + random + timestamp)通过MD5消息摘要算法计算的结果,AccessSecret是平台分配给用户的开发秘钥,random是本次请求携带的随机串,timestamp是本次请求携带的当前时间戳 |
accesskey | String | 必须 | y0r3Ize4tzltVYAL | 平台分配给用户的开发Key,登录系统首页可通过"开发key"功能获取 |
timestamp | String | 必须 | 1465227303037 | 发送请求时的系统时间戳,参入token的计算 |
random | String | 必须 | 23rfsdf332 | 发送请求时产生的随机串,参入token的计算 |
mobile | String | 必须 | 13900000001 | 接收语音短信的手机号码,多个号码以半角逗号,隔开 |
voiceCode | String | 必须 | 123456 | 语音数字,4~8位数字 |
请求示例
/* ---示例代码----*/HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("http://api.1cloudsp.com/voice/send"); postMethod.getParams().setContentCharset("UTF-8"); postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); String accesskey = "y04tzr3IzVYALelt"; //用户开发key String accessScrect = "TKRLnBJu5tKcKhrqRPpuuQgmeyttB7sw"; //用户开发秘钥 String random = RandomStringUtils.random(10); //随机字符串 String timestamp = ""+System.currentTimeMillis(); //当前时间戳 String token = this.MD5(accessScrect+random+timestamp); //计算token NameValuePair[] data = { new NameValuePair("token", token), new NameValuePair("accesskey", accesskey), new NameValuePair("timestamp", timestamp), new NameValuePair("random", random), new NameValuePair("mobile", "13900000001"), new NameValuePair("voiceCode", "123456"), }; postMethod.setRequestBody(data); int statusCode = httpClient.executeMethod(postMethod); System.out.println("statusCode: " + statusCode + ", body: " + postMethod.getResponseBodyAsString());
/* ---示例代码----*/
JAVA格式
国际语音验证码发送接口
用户通过HTTP的POST方式提交国际语音验证码发送请求。编码采用UTF-8编码。
请求地址
环境 | HTTP请求地址 |
---|---|
正式环境 | http://api.1cloudsp.com/intl/voice/send |
请求参数
名称 | 类型 | 是否必须 | 示例值 | 描述 |
---|---|---|---|---|
token | String | 必须 | 0b83811fb2db238ea1ace 9206d431db0 |
MD5(AccessSecret + random + timestamp)通过MD5消息摘要算法计算的结果,AccessSecret是平台分配给用户的开发秘钥,random是本次请求携带的随机串,timestamp是本次请求携带的当前时间戳 |
accesskey | String | 必须 | y0r3Ize4tzltVYAL | 平台分配给用户的开发Key,登录系统首页可通过"开发key"功能获取 |
timestamp | String | 必须 | 1465227303037 | 发送请求时的系统时间戳,参入token的计算 |
random | String | 必须 | 23rfsdf332 | 发送请求时产生的随机串,参入token的计算 |
mobile | String | 必须 | 13900000001 | 接收语音短信的手机号码,多个号码以半角逗号,隔开 |
voiceCode | String | 必须 | 123456 | 语音数字,4~8位数字 |
lang | String | 可选 | zh | 语言类型,zh为中文,en为英文,只支持中英文 |
请求示例
/* ---示例代码----*/HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("http://api.1cloudsp.com/intl/voice/send"); postMethod.getParams().setContentCharset("UTF-8"); postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); String accesskey = "y04tzr3IzVYALelt"; //用户开发key String accessScrect = "TKRLnBJu5tKcKhrqRPpuuQgmeyttB7sw"; //用户开发秘钥 String random = RandomStringUtils.random(10); //随机字符串 String timestamp = ""+System.currentTimeMillis(); //当前时间戳 String token = this.MD5(accessScrect+random+timestamp); //计算token NameValuePair[] data = { new NameValuePair("token", token), new NameValuePair("accesskey", accesskey), new NameValuePair("timestamp", timestamp), new NameValuePair("random", random), new NameValuePair("mobile", "13900000001"), new NameValuePair("voiceCode", "123456"), new NameValuePair("lang", "zh"), }; postMethod.setRequestBody(data); int statusCode = httpClient.executeMethod(postMethod); System.out.println("statusCode: " + statusCode + ", body: " + postMethod.getResponseBodyAsString());
/* ---示例代码----*/
JAVA格式
语音通知发送接口
用户通过HTTP的POST方式提交语音通知发送请求。编码采用UTF-8编码。
请求地址
环境 | HTTP请求地址 |
---|---|
正式环境 | http://api.1cloudsp.com/noticevoice/api/send |
请求参数
名称 | 类型 | 是否必须 | 示例值 | 描述 |
---|---|---|---|---|
token | String | 必须 | 0b83811fb2db238ea1ace 9206d431db0 |
MD5(AccessSecret + random + timestamp)通过MD5消息摘要算法计算的结果,AccessSecret是平台分配给用户的开发秘钥,random是本次请求携带的随机串,timestamp是本次请求携带的当前时间戳 |
accesskey | String | 必须 | y0r3Ize4tzltVYAL | 平台分配给用户的开发Key,登录系统首页可通过"开发key"功能获取 |
timestamp | String | 必须 | 1465227303037 | 发送请求时的系统时间戳,参入token的计算 |
random | String | 必须 | 23rfsdf332 | 发送请求时产生的随机串,参入token的计算 |
templateId | String | 可选 | 123456 | 平台上申请的接口短信模板Id(须审核通过)
注:如果templateId不填写,则content字段必须是完整短信内容,发送后会进入人工审核 |
mobile | String | 可选 | 13900000000,13900000001 | 接收短信的手机号码,多个号码以半角逗号,隔开 |
content | String | 可选 | 先生##9:40##快递公司##1234567
(示例模板:{1}您好,您的订单于{2}已通过{3}发货,运单号{4}) |
发送的短信内容是模板变量内容,多个变量中间用##或者$$隔开,采用utf8编码 |
data | json字符串 | 可选 | {"13700000001":"女士##10:10##物流公司##000000","13700000000":"先生##9:40##快递公司##1234567"} | 该字段用于发送个性短信,mobile和content字段不需要填写,该字段json字符串,json的key是手机号,value是短信内容变量,等同于上面的content 包含多个变量中间用##或者$$隔开,采用utf8编码 |
scheduleSendTime | String | 可选 | 2016-01-01 18:00:00 | 短信定时发送时间,格式为:2016-01-01 18:00:00;参数如果为空表示立即发送 |
请求示例
/* ---示例代码----*///普通短信通知 private void sendsms() throws Exception { HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("http://api.1cloudsp.com/noticevoice/api/send"); postMethod.getParams().setContentCharset("UTF-8"); postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,new DefaultHttpMethodRetryHandler()); String accesskey = "y0r3Ize4tzltVYAL"; //用户开发key String accessScrect = "TKRLnRPpuuQgmKcKhrqttB7sweyBJu5t"; //用户开发秘钥 String random = random(10); //随机字符串 String timestamp = ""+System.currentTimeMillis(); //当前时间戳 String token = MD5(accessScrect+random+timestamp); //计算token NameValuePair[] data = { new NameValuePair("token", token), new NameValuePair("accesskey", accesskey), new NameValuePair("timestamp", timestamp), new NameValuePair("random", random), new NameValuePair("templateId", "100"), new NameValuePair("mobile", "13900000001,13900000002"), new NameValuePair("content", URLEncoder.encode("先生##9:40##快递公司##1234567", "utf-8"))//(示例模板:{1}您好,您的订单于{2}已通过{3}发货,运单号{4}) }; postMethod.setRequestBody(data); int statusCode = httpClient.executeMethod(postMethod); System.out.println("statusCode: " + statusCode + ", body: " + postMethod.getResponseBodyAsString()); } //个性短信通知 private void sendsms2() throws Exception { HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("http://api.1cloudsp.com/noticevoice/api/send"); postMethod.getParams().setContentCharset("UTF-8"); postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,new DefaultHttpMethodRetryHandler()); String accesskey = "y0r3Ize4tzltVYAL"; //用户开发key String accessScrect = "TKRLnRPpuuQgmKcKhrqttB7sweyBJu5t"; //用户开发秘钥 String random = random(10); //随机字符串 String timestamp = ""+System.currentTimeMillis(); //当前时间戳 String token = MD5(accessScrect+random+timestamp); //计算token //组装个性短信内容 JSONObject jsonObj = new JSONObject(); jsonObj.put("13700000000","先生##9:40##快递公司##1234567"); jsonObj.put("13700000001","女士##10:10##物流公司##000000");//(示例模板:{1}您好,您的订单于{2}已通过{3}发货,运单号{4}) NameValuePair[] data = { new NameValuePair("token", token), new NameValuePair("accesskey", accesskey), new NameValuePair("timestamp", timestamp), new NameValuePair("random", random), new NameValuePair("templateId", "100"), new NameValuePair("data", URLEncoder.encode(jsonObj.toString(), "utf-8")) }; postMethod.setRequestBody(data); int statusCode = httpClient.executeMethod(postMethod); System.out.println("statusCode: " + statusCode + ", body: " + postMethod.getResponseBodyAsString()); }
/* ---示例代码----*/
JAVA格式
私密通话发送接口
用户通过HTTP的POST方式提交私密通话发送请求。编码采用UTF-8编码。
请求地址
环境 | HTTP请求地址 |
---|---|
正式环境 | http://api.1cloudsp.com/secrettalk/send |
请求参数
名称 | 类型 | 是否必须 | 示例值 | 描述 |
---|---|---|---|---|
token | String | 必须 | 0b83811fb2db238ea1ace 9206d431db0 |
MD5(AccessSecret + random + timestamp)通过MD5消息摘要算法计算的结果,AccessSecret是平台分配给用户的开发秘钥,random是本次请求携带的随机串,timestamp是本次请求携带的当前时间戳 |
accesskey | String | 必须 | y0r3Ize4tzltVYAL | 平台分配给用户的开发Key,登录系统首页可通过"开发key"功能获取 |
timestamp | String | 必须 | 1465227303037 | 发送请求时的系统时间戳,参入token的计算 |
random | String | 必须 | 23rfsdf332 | 发送请求时产生的随机串,参入token的计算 |
mobile | String | 必须 | 13900000001 | 主叫手机号码 |
mobileCalled | String | 必须 | 13900000002 | 被叫手机号码 |
请求示例
/* ---示例代码----*/HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("http://api.1cloudsp.com/secrettalk/send"); postMethod.getParams().setContentCharset("UTF-8"); postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); String accesskey = "y04tzr3IzVYALelt"; //用户开发key String accessScrect = "TKRLnBJu5tKcKhrqRPpuuQgmeyttB7sw"; //用户开发秘钥 String random = RandomStringUtils.random(10); //随机字符串 String timestamp = ""+System.currentTimeMillis(); //当前时间戳 String token = this.MD5(accessScrect+random+timestamp); //计算token NameValuePair[] data = { new NameValuePair("token", token), new NameValuePair("accesskey", accesskey), new NameValuePair("timestamp", timestamp), new NameValuePair("random", random), new NameValuePair("mobile", "13900000001"), new NameValuePair("mobileCalled", "13900000002"), }; postMethod.setRequestBody(data); int statusCode = httpClient.executeMethod(postMethod); System.out.println("statusCode: " + statusCode + ", body: " + postMethod.getResponseBodyAsString());
/* ---示例代码----*/
JAVA格式
上行短信推送接口
平台通过HTTP的POST方式提交上行短信数据到用户的接收地址。编码采用UTF-8编码。
上行短信数据格式
{"mobile":"", "content":"", "receiveTime":""}
JSON格式:mobile是发送上行短信的用户手机号;content是上行短信内容;receiveTime是发送上行短信的时间
短信状态推送接口
平台通过HTTP的POST方式提交短信发送状态数据到用户的接收地址。编码采用UTF-8编码。
短信发送状态数据格式
{"smUuid":"","deliverTime":"","deliverResult":"","mobile":"","batchId":""}
JSON格式:smUuid是短信唯一标识;deliverResult是短信发送的状态结果,DELIVED表示发送成功,其他表示失败;deliverTime是状态报告回执的时间
mobile是接收短信的手机号,batchId是批次id
短信余额条数查询接口
用户通过HTTP的POST方式提交短信状态查询请求。编码采用UTF-8编码。
请求地址
环境 | HTTP请求地址 |
---|---|
正式环境 | http://api.1cloudsp.com/query/account |
请求参数
名称 | 类型 | 是否必须 | 示例值 | 描述 |
---|---|---|---|---|
token | String | 必须 | 0b83811fb2db238ea1ace 9206d431db0 |
MD5(AccessSecret + random + timestamp)通过MD5消息摘要算法计算的结果,AccessSecret是平台分配给用户的开发秘钥,random是本次请求携带的随机串,timestamp是本次请求携带的当前时间戳 |
accesskey | String | 必须 | y0r3Ize4tzltVYAL | 平台分配给用户的开发Key,登录系统首页可通过"开发key"功能获取 |
timestamp | String | 必须 | 1465227303037 | 发送请求时的系统时间戳,参入token的计算 |
random | String | 必须 | 23rfsdf332 | 发送请求时产生的随机串,参入token的计算 |
请求示例
/* ---示例代码----*/HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("http://api.1cloudsp.com/query/account"); postMethod.getParams().setContentCharset("UTF-8"); postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); String accesskey = "y0r3IzVYALe4tzlt"; //用户开发key String accessScrect = "TKRLnRPpuuQgmeyBJu5tKcKhrqttB7sw"; //用户开发秘钥 String random = RandomStringUtils.random(10); //随机字符串 String timestamp = ""+System.currentTimeMillis(); //当前时间戳 String token = this.MD5(accessScrect+random+timestamp); //计算token NameValuePair[] data = { new NameValuePair("token", token), new NameValuePair("accesskey", accesskey), new NameValuePair("timestamp", timestamp), new NameValuePair("random", random) }; postMethod.setRequestBody(data); int statusCode = httpClient.executeMethod(postMethod); System.out.println("statusCode: " + statusCode + ", body: " + postMethod.getResponseBodyAsString());
/* ---示例代码----*/
JAVA格式
响应示例
{"code":"0","msg":"SUCCESS","data":{"1":9983,"2":9998}}
JSON格式:code如果为0表示请求成功,非0表示请求失败,参考错误码列表查看具体失败原因
短信模板查询接口
用户通过HTTP的POST方式提交短信状态查询请求。编码采用UTF-8编码。
请求地址
环境 | HTTP请求地址 |
---|---|
正式环境 | http://api.1cloudsp.com/query/templatelist |
请求参数
名称 | 类型 | 是否必须 | 示例值 | 描述 |
---|---|---|---|---|
token | String | 必须 | 0b83811fb2db238ea1ace 9206d431db0 |
MD5(AccessSecret + random + timestamp)通过MD5消息摘要算法计算的结果,AccessSecret是平台分配给用户的开发秘钥,random是本次请求携带的随机串,timestamp是本次请求携带的当前时间戳 |
accesskey | String | 必须 | y0r3Ize4tzltVYAL | 平台分配给用户的开发Key,登录系统首页可通过"开发key"功能获取 |
timestamp | String | 必须 | 1465227303037 | 发送请求时的系统时间戳,参入token的计算 |
random | String | 必须 | 23rfsdf332 | 发送请求时产生的随机串,参入token的计算 |
请求示例
/* ---示例代码----*/HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("http://api.1cloudsp.com/query/templatelist"); postMethod.getParams().setContentCharset("UTF-8"); postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); String accesskey = "y0r3IzVYALe4tzlt"; //用户开发key String accessScrect = "TKRLnRPpuuQgmeyBJu5tKcKhrqttB7sw"; //用户开发秘钥 String random = RandomStringUtils.random(10); //随机字符串 String timestamp = ""+System.currentTimeMillis(); //当前时间戳 String token = this.MD5(accessScrect+random+timestamp); //计算token NameValuePair[] data = { new NameValuePair("token", token), new NameValuePair("accesskey", accesskey), new NameValuePair("timestamp", timestamp), new NameValuePair("random", random) }; postMethod.setRequestBody(data); int statusCode = httpClient.executeMethod(postMethod); System.out.println("statusCode: " + statusCode + ", body: " + postMethod.getResponseBodyAsString());
/* ---示例代码----*/
JAVA格式
响应示例
{
"code": "0",
"msg": "SUCCESS",
"data": {
"1": [
{
"template": "{1}你好:您的订单已经出库,请注意查收",
"customerId": 10000,
"applyStatus": 2,
"categoryId": 2
},
{
"template": "你的验证码是:{1}",
"customerId": 10000,
"applyStatus": 2,
"categoryId": 1
}
],
"2": [
{
"template": "{1}你好:您的订单已经出库,请注意查收",
"customerId": 10000,
"applyStatus": 2,
"categoryId": 2
},
{
"template": "你的验证码是:{1}",
"customerId": 10000,
"applyStatus": 2,
"categoryId": 1
}
]
}
}
短信签名查询接口
用户通过HTTP的POST方式提交短信状态查询请求。编码采用UTF-8编码。
请求地址
环境 | HTTP请求地址 |
---|---|
正式环境 | http://api.1cloudsp.com/query/signlist |
请求参数
名称 | 类型 | 是否必须 | 示例值 | 描述 |
---|---|---|---|---|
token | String | 必须 | 0b83811fb2db238ea1ace 9206d431db0 |
MD5(AccessSecret + random + timestamp)通过MD5消息摘要算法计算的结果,AccessSecret是平台分配给用户的开发秘钥,random是本次请求携带的随机串,timestamp是本次请求携带的当前时间戳 |
accesskey | String | 必须 | y0r3Ize4tzltVYAL | 平台分配给用户的开发Key,登录系统首页可通过"开发key"功能获取 |
timestamp | String | 必须 | 1465227303037 | 发送请求时的系统时间戳,参入token的计算 |
random | String | 必须 | 23rfsdf332 | 发送请求时产生的随机串,参入token的计算 |
请求示例
/* ---示例代码----*/HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("http://api.1cloudsp.com/query/signlist"); postMethod.getParams().setContentCharset("UTF-8"); postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); String accesskey = "y0r3IzVYALe4tzlt"; //用户开发key String accessScrect = "TKRLnRPpuuQgmeyBJu5tKcKhrqttB7sw"; //用户开发秘钥 String random = RandomStringUtils.random(10); //随机字符串 String timestamp = ""+System.currentTimeMillis(); //当前时间戳 String token = this.MD5(accessScrect+random+timestamp); //计算token NameValuePair[] data = { new NameValuePair("token", token), new NameValuePair("accesskey", accesskey), new NameValuePair("timestamp", timestamp), new NameValuePair("random", random) }; postMethod.setRequestBody(data); int statusCode = httpClient.executeMethod(postMethod); System.out.println("statusCode: " + statusCode + ", body: " + postMethod.getResponseBodyAsString());
/* ---示例代码----*/
JAVA格式
响应示例
{
"code": "0",
"msg": "SUCCESS",
"data": {
"1": [
{
"extNo": "000005",
"exemptFlag": 2,
"customerId": 10000,
"sign": "【创瑞测试】",
"applyStatus": 2
}
],
"2": [
{
"extNo": "000006",
"customerId": 10000,
"sign": "【创瑞测试】",
"applyStatus": 2
}
]
}
}
短信状态查询接口
用户通过HTTP的POST方式提交短信状态查询请求。编码采用UTF-8编码。
请求地址
环境 | HTTP请求地址 |
---|---|
正式环境 | http://api.1cloudsp.com/query/sms |
请求参数
名称 | 类型 | 是否必须 | 示例值 | 描述 |
---|---|---|---|---|
token | String | 必须 | 0b83811fb2db238ea1ace 9206d431db0 |
MD5(AccessSecret + random + timestamp)通过MD5消息摘要算法计算的结果,AccessSecret是平台分配给用户的开发秘钥,random是本次请求携带的随机串,timestamp是本次请求携带的当前时间戳 |
accesskey | String | 必须 | y0r3Ize4tzltVYAL | 平台分配给用户的开发Key,登录系统首页可通过"开发key"功能获取 |
timestamp | String | 必须 | 1465227303037 | 发送请求时的系统时间戳,参入token的计算 |
random | String | 必须 | 23rfsdf332 | 发送请求时产生的随机串,参入token的计算 |
smuuid | String | 必须 | f3e5aeab9bda27f420a443868eff7000fh81fk, f3e5aeab9bda27f420a443868eff7000fh81fk |
smuuid唯一标识一条短信,查询多条短信的状态可以用半角逗号,对smuuid进行分割 |
请求示例
/* ---示例代码----*/HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("http://api.1cloudsp.com/query/sms"); postMethod.getParams().setContentCharset("UTF-8"); postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); String accesskey = "y04tzr3IzVYALelt"; //用户开发key String accessScrect = "TKRLnBJu5tKcKhrqRPpuuQgmeyttB7sw"; //用户开发秘钥 String random = RandomStringUtils.random(10); //随机字符串 String timestamp = ""+System.currentTimeMillis(); //当前时间戳 String token = this.MD5(accessScrect+random+timestamp); //计算token NameValuePair[] data = { new NameValuePair("token", token), new NameValuePair("accesskey", accesskey), new NameValuePair("timestamp", timestamp), new NameValuePair("random", random), new NameValuePair("smuuid", "eda232a5e46eb447846ac2fa300d54a7nm1w4t") //短信的uuid }; postMethod.setRequestBody(data); int statusCode = httpClient.executeMethod(postMethod); System.out.println("statusCode: " + statusCode + ", body: " + postMethod.getResponseBodyAsString());
/* ---示例代码----*/
JAVA格式
响应示例
{
code: "0",
msg: "SUCCESS",
report: [
{
smuuid: "f3e5aeab9bda27f420a443868eff7000fh81fk",
mobile: "13900000001",
sendTime: "2016-01-01 18:00:00",
sendResult: "0",
recvTime: "2016-01-01 18:00:00",
recvResult: "DELIVER"
},
{
smuuid: "0b83811fb2db238ea1ace9206d431db08hkkvn",
mobile: "13900000002",
sendTime: "2016-01-01 18:00:00",
sendResult: "0",
recvTime: "2016-01-01 18:00:00",
recvResult: "DELIVER"
}
]
}
JSON格式:code如果为0表示请求成功,非0表示请求失败,参考错误码列表查看具体失败原因;
错误码列表
错误码 | 错误描述 |
---|---|
9001 | 签名格式不正确 |
9002 | 参数未赋值 |
9003 | 手机号码格式不正确 |
9004 | 请求已经失效 |
9005 | token验证不正确 |
9006 | 用户accessKey不正确 |
9007 | IP白名单限制 |
9008 | 短信类别不正确 |
9009 | 短信内容参数不正确 |
9010 | 用户短信余额不足 |
9011 | 用户帐户异常 |
9012 | 日期时间格式不正确 |
9013 | 不合法的语音验证码,4~8位的数字 |
9014 | 超出了最大手机号数量 |
9015 | 不支持的国家短信 |
9016 | 无效的签名或者签名ID |
9017 | 无效的模板ID |
9018 | 单个变量限制为1-20个字 |
9019 | 内容不可以为空 |
9020 | 主叫和被叫号码不能相同 |