接口文档
15817 2020-12-18 10:40:19 中昱维信
协议类目 | 说明 |
调用地址 | https://vip.veesing.com/mmsApi/2m/create |
请求方式 | POST(HTTPS) |
编码格式 | UTF-8 |
Content-Type | application/x-www-form-urlencoded;charset=utf-8 |
参数名称 | 类型 | 是否必填 | 描述 | 示例值 |
appId | String | 是 | 账户标识。平台分配给用户的接口调用账户标识,登录平台首页账号信息栏可查看。 | 2RYN7CQHL1M***** |
appKey | String | 是 | 账户密钥。平台分配给用户的接口调用密钥,登录平台首页账号信息栏,校验身份后可查看。 | WVNA4A0***** |
title | String | 是 | 视频短信标题 | 中昱双十一大促 |
content | String | 是 | 视频短信内容 (内容格式请看下方说明) (短信内容不支持插入表情符号) |
1、视频短信支持视频、图片、音频和文字,图片编码格式为base64,文字编码格式为gbk编码后转base64。
2、视频短信最多支持15帧,帧与帧之间用英文分号(;)分隔,总大小不超过2048KB。
3、视频短信每帧需包含帧播放时间、文件类型、文件内容,文件内容可以为图片(支持jpg/gif格式)、视频(支持mp4格式)、音频(支持mp3格式)、文字(文字用txt格式存储,编码格式为gbk)。
4、同一帧最多允许一段文字和一种媒体文件(即同一帧中只允许展现视频、图片、音频中的一种媒体文件),多个媒体文件请分别放置在多帧中。
5、视频短信完整数据报文格式:
播放时间,文件类型|文件内容,文件类型|文件内容;播放时间,文件类型|文件内容,文件类型|文件内容;
帧播放时间作为该帧报文前置字段,每帧可以包含多个文件,多个文件用(,)分隔,每个文件由格式和内容组成,格式和内容用(|)分隔。
6、视频短信完整数据报文示例:
5,jpg|4AAQSkZJR...gABAgA,txt|中昱维信双十一大促;3,gif|ExghIhcXG...RcXIiQdIB,txt|欢迎莅临采购
7、视频短信标准展现样式示例:
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; /** * 视频短信创建 * @author Veesing * */ public class MmsTest { final static String CREATE_URL = "https://vip.veesing.com/mmsApi/2m/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", "彩信标题"), 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> * 多帧循环生成 * * @return */ public static String content() { StringBuffer sb = new StringBuffer(); // --------文件----- sb.append(",jpg|" + encodeFile("文件路径")); // --------文字----- sb.append(",txt|" + encodeTxt("文字内容")); 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; } }
{ "returnStatus": "1 ", //状态码 "message": "成功", //状态提示信息 "remainPoint": null, "taskId": "55", //彩信ID "successCounts": null }
{ "returnStatus": "0", //状态码 "message": "参数错误", //状态提示信息 "remainPoint": null, "taskId": null, "successCounts": null }
状态码 | 状态提示信息 |
1 | 发送成功 |
0 | 账号或密码错误 |
0 | 缺少参数 |
0 | 您的账户已被锁定,请联系您的专属客服 |
0 | 未知原因,请联系客服 |
协议类目 | 说明 |
调用地址 | https://vip.veesing.com/mmsApi/2m/send |
请求方式 | POST(HTTPS) |
编码格式 | UTF-8 |
Content-Type | application/x-www-form-urlencoded;charset=utf-8 |
参数名称 | 类型 | 是否必填 | 描述 | 示例值 |
appId | String | 是 | 账户标识。平台分配给用户的接口调用账户标识,登录平台首页账号信息栏可查看。 | 2RYN7CQHL1M***** |
appKey | String | 是 | 账户密钥。平台分配给用户的接口调用密钥,登录平台首页账号信息栏,校验身份后可查看。 | WVNA4A0***** |
mmsId | String | 是 | 视频短信ID。创建视频短信接口返回的ID或平台创建视频短信生成的ID。 | 54 |
sendTime | String | 否 | 定时时间。留空则表示立即发送,时间格式为:yyyy-MM-dd HH:mm:ss | 2018-08-21 14:00:00 |
phone | String | 是 | 接收视频短信的手机号码,多个手机号码用逗号分隔。 | 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; /** * 视频短信发送 * @author Veesing * */ public class MmsTest { final static String SEND_URL = "https://vip.veesing.com/mmsApi/2m/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(); } } }
{ "returnStatus": "1 ", //状态码 "message": "成功", //状态提示信息 "remainPoint": "241", //本次发送后,账户剩余条数 "taskId": "3313746", //下发批次ID(唯一) "successCounts": "1" //成功条数 }
{ "returnStatus": "0", //状态码 "message": "参数错误", //状态提示信息 "remainPoint": null, //本次发送后,账户剩余条数 "taskId": null, //下发批次ID(唯一) "successCounts": null //成功条数 }
状态码 | 状态提示信息 |
1 | 发送成功 |
0 | 账号或密码错误 |
0 | 缺少参数 |
0 | 您的账户已被锁定,请联系您的专属客服 |
0 | 未知原因,请联系客服 |
短信提交到平台,平台审核后,将立即推送审核结果。每审核一批,则推送一次。
审核结果由短信平台主动推送到用户设置的地址上,接收数据需遵循标准化数据格式定义。
协议类目 | 说明 |
调用方式 | 主动回调 |
请求方式 | POST(HTTPS) |
编码格式 | UTF-8 |
数据交互格式 | Key-Value |
Content-Type | application/x-www-form-urlencoded;charset=utf-8 |
参数名称 | 类型 | 是否必填 | 描述 | 示例值 |
taskId | String | 是 | 发送批次ID | 123 |
returnStatus | String | 是 | 短信审核结果:0 拒绝,1 通过 | 1 |
message | String | 是 | 审核结论。审核拒绝时,将通过此字段告知客户端拒绝原因。 | 内容不合规 |
运营商产生短信回执后,触发回执数据推送,每产生一条回执,则推送一条。
回执数据,由短信平台主动推送到用户设置的地址上,数据格式需遵循标准化数据格式。
协议类目 | 说明 |
调用方式 | 主动回调 |
请求方式 | POST(HTTPS) |
编码格式 | UTF-8 |
数据交互格式 | Key-Value |
Content-Type | application/x-www-form-urlencoded;charset=utf-8 |
参数名称 | 类型 | 是否必填 | 描述 | 示例值 |
mobile | String | 是 | 用户手机号码 | 1508092**** |
taskid | String | 是 | 发送批次ID | 123 |
status | String | 是 | 回执状态 1.发送成功 0.发送失败 | 1 |
receivetime | String | 是 | 回执产生时间 yyyy-MM-dd HH:mm:ss | 2019-07-23 17:00:00 |
协议类目 | 说明 |
调用地址 | https://vip.veesing.com/mmsApi/2m/getBalance |
请求方式 | POST(HTTPS) |
编码格式 | UTF-8 |
Content-Type | application/x-www-form-urlencoded;charset=utf-8 |
参数名称 | 类型 | 是否必填 | 描述 | 示例值 |
appId | String | 是 | 账户标识。平台分配给用户的接口调用账户标识,登录平台首页账号信息栏可查看。 | 2RYN7CQHL1M***** |
appKey | String | 是 | 账户密钥。平台分配给用户的接口调用密钥,登录平台首页账号信息栏,校验身份后可查看。 | 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://vip.veesing.com/mmsApi/2m/getBalance?appId=2RYN7CQHL1M*****&appKey=WVNA4A0*****") .method("POST", body) .build(); Response response = client.newCall(request).execute();
{ "returnStatus": "1 ", //状态码 "message": "成功", //状态提示信息 "remainPoint": "241", //账户剩余条数 "taskId": null, "successCounts": null }
{ "returnStatus": "0", //状态码 "message": "参数错误", //状态提示信息 "remainPoint": null, "taskId": null, "successCounts": null }
状态码 | 状态提示信息 |
1 | 提交成功 |
0 | 账号或密码错误 |
0 | 缺少参数 |
0 | 您的账户已被锁定,请联系您的专属客服 |
0 | 未知原因,请联系客服 |
0 | IP受限 |