1.創(chuàng)建彩信接口
協(xié)議說明
協(xié)議類目 | 說明 |
調(diào)用地址 | https://cloud.10658.com.cn/mmsApi/create |
請求方式 | 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)用密鑰,登錄平臺首頁賬號信息欄,校驗身份后可查看。 | WVNA4A0***** |
title | String | 是 | 彩信標(biāo)題 | 中昱雙十一大促 |
content | String | 是 | 彩信內(nèi)容 (內(nèi)容格式請看下方說明) (彩信內(nèi)容不支持插入表情符號) |
內(nèi)容格式定義
1、彩信支持圖片、視頻、音頻和文字,圖片編碼格式為base64,文字編碼格式為gbk編碼后轉(zhuǎn)base64。
2、彩信最多支持15幀,幀與幀之間用英文分號(;)分隔,彩信總大小不能超過80KB。
3、彩信每幀需包含幀播放時間、文件類型、文件內(nèi)容,文件內(nèi)容可以為圖片(支持jpg/gif格式)、視頻(支持mp4格式)、音頻(支持mp3格式)、文字(文字用txt格式存儲,編碼格式為gbk)。
4、同一幀最多允許一段文字和一種媒體文件(即同一幀中只允許展現(xiàn)視頻、圖片、音頻中的一種媒體文件),多個媒體文件請分別放置在多幀中。
5、彩信完整數(shù)據(jù)報文格式:
播放時間,文件類型|文件內(nèi)容,文件類型|文件內(nèi)容;播放時間,文件類型|文件內(nèi)容,文件類型|文件內(nèi)容;
幀播放時間作為該幀報文前置字段,每幀可以包含多個文件,多個文件用(,)分隔,每個文件由格式和內(nèi)容組成,格式和內(nèi)容用(|)分隔。
6、彩信完整數(shù)據(jù)報文示例:
5,jpg|4AAQSkZJR...gABAgA,txt|中昱維信雙十一大促;3,gif|ExghIhcXG...RcXIiQdIB,txt|歡迎蒞臨采購
7、彩信標(biāo)準(zhǔn)展現(xiàn)樣式示例:
代碼示例
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Base64;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
/**
* 彩信創(chuàng)建
* @author Veesing
*
*/
public class MmsTest {
final static String CREATE_URL = "https://cloud.10658.com.cn/mmsApi/create";
final static String APPID = "";
final static String APPKEY = "";
public static void create() {
try {
HttpClient client = new HttpClient();
PostMethod post = new PostMethod(CREATE_URL);
post.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
post.setRequestHeader("Connection", "close");
NameValuePair[] data = {
new NameValuePair("appId", APPID),
new NameValuePair("appKey", APPKEY),
new NameValuePair("title", "彩信標(biāo)題"),
new NameValuePair("content", content())
};
post.setRequestBody(data);
client.executeMethod(post);
String result = new String(post.getResponseBodyAsString().getBytes());
System.out.println(result);
post.releaseConnection();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 一幀<br>
* 多幀循環(huán)生成
*
* @return
*/
public static String content() {
StringBuffer sb = new StringBuffer();
// --------文件-----
sb.append(",jpg|" + encodeFile("文件路徑"));
// --------文字-----
sb.append(",txt|" + encodeTxt("文字內(nèi)容"));
sb.append(";");
return sb.substring(0, sb.length() - 1);
}
public static String encodeFile(String filePath) {
byte[] data = null;
try {
InputStream in = new FileInputStream(filePath);
data = new byte[in.available()];
in.read(data);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
return Base64.getEncoder().encodeToString(data).replaceAll("[\\t\\n\\r]", "");
}
public static String encodeTxt(String txt) {
try {
return Base64.getEncoder().encodeToString(new String(txt).getBytes("gbk"));
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
正常響應(yīng)示例
{
"returnStatus": "1 ", //狀態(tài)碼
"message": "成功", //狀態(tài)提示信息
"remainPoint": null,
"taskId": "55", //彩信ID
"successCounts": null
}
異常響應(yīng)示例
{
"returnStatus": "0", //狀態(tài)碼
"message": "參數(shù)錯誤", //狀態(tài)提示信息
"remainPoint": null,
"taskId": null,
"successCounts": null
}
狀態(tài)碼定義
狀態(tài)碼 | 狀態(tài)提示信息 |
1 | 發(fā)送成功 |
0 | 賬號或密碼錯誤 |
0 | 缺少參數(shù) |
0 | 您的賬戶已被鎖定,請聯(lián)系您的專屬客服 |
0 | 未知原因,請聯(lián)系客服? |
2.發(fā)送彩信接口
協(xié)議說明
協(xié)議類目 | 說明 |
調(diào)用地址 | https://cloud.10658.com.cn/mmsApi/send |
請求方式 | 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)用密鑰,登錄平臺首頁賬號信息欄,校驗身份后可查看。 | WVNA4A0***** |
mmsId | String | 是 | 彩信ID。創(chuàng)建彩信接口返回的ID或平臺創(chuàng)建彩信生成的ID。 | 54 |
sendTime | String | 否 | 定時時間。留空則表示立即發(fā)送,時間格式為:yyyy-MM-dd HH:mm:ss | 2018-08-21 14:00:00 |
phone | String | 是 | 接收彩信的手機(jī)號碼,多個手機(jī)號碼用逗號分隔。 | 156****1090 |
請求示例
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Base64;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
/**
* 彩信發(fā)送
* @author Veesing
*
*/
public class MmsTest {
final static String SEND_URL = "https://cloud.10658.com.cn/mmsApi/send";
final static String APPID = "";
final static String APPKEY = "";
public static void send() {
try {
HttpClient client = new HttpClient();
PostMethod post = new PostMethod(SEND_URL);
post.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
post.setRequestHeader("Connection", "close");
NameValuePair[] data = {
new NameValuePair("appId", APPID),
new NameValuePair("appKey", APPKEY),
new NameValuePair("mmsId", "xxxxxx"),
// new NameValuePair("sendTime", "2020-11-07 14:37:31"),
new NameValuePair("phone", content()) };
post.setRequestBody(data);
client.executeMethod(post);
String result = new String(post.getResponseBodyAsString().getBytes());
System.out.println(result);
post.releaseConnection();
} catch (Exception 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 | 您的賬戶已被鎖定,請聯(lián)系您的專屬客服 |
0 | 未知原因,請聯(lián)系客服? |
3.審核結(jié)果推送
觸發(fā)條件
彩信提交到平臺,平臺審核后,將立即推送審核結(jié)果。每審核一批,則推送一次。
使用說明
審核結(jié)果由短信平臺主動推送到用戶設(shè)置的地址上,接收數(shù)據(jù)需遵循標(biāo)準(zhǔn)化數(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 |
審核結(jié)果數(shù)據(jù)定義
參數(shù)名稱 | 類型 | 是否必填 | 描述 | 示例值 |
taskId | String | 是 | 發(fā)送批次ID | 123 |
returnStatus | String | 是 | 彩信審核結(jié)果:0 拒絕,1 通過 | 1 |
message | String | 是 | 審核結(jié)論。審核拒絕時,將通過此字段告知客戶端拒絕原因。 | 內(nèi)容不合規(guī) |
4.回執(zhí)推送接口
觸發(fā)條件
運營商產(chǎn)生短信回執(zhí)后,觸發(fā)回執(zhí)數(shù)據(jù)推送,每產(chǎn)生一條回執(zhí),則推送一條。
使用說明
回執(zhí)數(shù)據(jù),由短信平臺主動推送到用戶設(shè)置的地址上,數(shù)據(jù)格式需遵循標(biāo)準(zhǔn)化數(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 | 是 | 用戶手機(jī)號碼 | 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 |
5.余額查詢接口
協(xié)議說明
協(xié)議類目 | 說明 |
調(diào)用地址 | https://cloud.10658.com.cn/mmsApi/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)用密鑰,登錄平臺首頁賬號信息欄,校驗身份后可查看。 | 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/mmsApi/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ù)錯誤", //狀態(tài)提示信息
"remainPoint": null,
"taskId": null,
"successCounts": null
}
狀態(tài)碼定義
狀態(tài)碼 | 狀態(tài)提示信息 |
1 | 提交成功 |
0 | 賬號或密碼錯誤 |
0 | 缺少參數(shù) |
0 | 您的賬戶已被鎖定,請聯(lián)系您的專屬客服 |
0 | 未知原因,請聯(lián)系客服? |
0 | IP受限 |