1.上传素材接口
一次上传不能大于2M的内容
请求方法:post
接口地址:
http://sms.ccell.cn/sms/video/material
请求参数说明:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| userId | 是 | number | 短信账号 |
| password | 是 | String | 短信账号密码 |
| templateName | 否 | String | 模板名称 |
| data | 是 | object | 视频短信数据对象 |
data对象:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| subject | 是 | String | 视频短信主题 |
| content | 是 | object | 视频短信内容数据对象 |
content对象:
虽然text,fileName是选传参数,但是text和fileName必须并且只能存在一个
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| frame | 是 | String | 文件顺序,其中“-”前数字代表帧所 在位置,后面的数字代表该文 件在本 帧内的顺序,必选 |
| text | 否 | String | 文本内容,当附件为文本类型时使用 该字段,包括 txt、vcf,内容 编码: UTF-8 当内容中含有可变参数时,使用$进行 包裹,例如 $person$您好 |
| fileName | 否 | String | 文件名,附件为音频、视频、图片时 使用该字段, 包括: 音频: amr、mid、mp3 图像:jpg、png、gif 视频:mp4、3gp 可选 |
请求包例子:
请求示例(Get):
POST /sms/video/material HTTP/1.1
Content-Type: multipart/form-data; boundary=********************1635125737824
User-Agent: Requests 4.18.1, Java 1.8.0_144
Accept-Encoding: gzip, deflate
Cache-Control: no-cache
Pragma: no-cache
Host: 14.152.78.251:8848
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
Content-Length: 836640
--********************1635125737824
Content-Disposition: form-data; name="data"
{"userId":203400,"password":"7nFbaFdhpFIwA4q9BhlCrwFThhLWXAYm","templateName":"测 试模板","data":{"subject":"测试","content":[{"frame":"001-01","text":"云边有个小卖 部,货架堆着岁月和夕阳,背后就是山。老人靠着躺椅假装睡着,小孩子偷走了一块糖。泪水几点钟落地,飞 鸟要去向何方。人们聚和离,云朵来又往。\n\n和煦的阳光,透过稠密的树叶洒落下来,成了点点金色的光 斑,天气晴朗,空气新鲜,生活有所期待,湖上泛着一片青烟似的薄雾,远望微山,只隐约辨出灰色的山 影。","fileName":null},{"frame":"001- 02","text":null,"fileName":"202108100950_0018_1.jpg"},{"frame":"002- 01","text":null,"fileName":"123414644d39acfd4a075a5b8eb8c445731.mp4"}]}}
--********************1635125737824
Content-Disposition: form-data; name="123414644d39acfd4a075a5b8eb8c445731.mp4";
filename="123414644d39acfd4a075a5b8eb8c445731.mp4"
Content-Type: video/mp4
123414644d39acfd4a075a5b8eb8c445731.mp4的文件数据
--********************1635125737824
Content-Disposition: form-data; name="202108100950_0018_1.jpg";
filename="202108100950_0018_1.jpg"
Content-Type: image/jpeg
202108100950_0018_1.jpg的文件数据
--********************1635125737824--
响应参数说明:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| head | 是 | object | 接口响应头信息对象 |
| body | 否 | object | 接口响应内容信息对象 |
head对象:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| code | 是 | String | 错误代码,接口调用正常是为0,其他为错误代码 |
| message | 是 | String | 错误信息,一般用于提示给用户看。 |
body对象:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| templateId | 是 | String | 模板号 |
响应:
{"head":{"code":"0","message":"成功","elapsedTime":0},
"body": {"templateId":1000009}}
2.查询素材审核状态接口
使用上传素材接口返回的模板号查询素材审核状态
请求:
post http://sms.ccell.cn/sms/video/materialstatus
{"userId": xxx, "password": "xxx", "templateId": [1000000,1000001,1000002,1000008]}
响应:
body内的status参数说明:
0:待审核
1:审核通过
2:审核不通过
`{"head":{"code":"0","message":"成功","elapsedTime":0},
"body": [{"templateId":1000000,"templateName":"测试模板","status":1,"msg":"审核通过"},
{"templateId":1000001,"templateName":"测试模板","status":2,"msg":"内容不合规"},
{"templateId":1000002,"templateName":"测试模板","status":0,"msg":"待审核"},
{"templateId":1000008,"templateName":"测试模板","status":0,"msg":"待审核"}]}`
3.发送视频短信接口
3.1发送短信
3.1.1接口地址
HTTPS:https://sms.ccell.cn/sms3_api/jsonapi/jsonrpc2.jsp
3.1.2参数说明
3.1.2.1请求参数
请求包体必须为标准的JSON
请求包体说明:
{
"id":id,
"method":"接口类型,发送为send(必填)",
"params":{
"userid":"账号(必填)",
"password":"密码(必填)",
"submit":[
{
"content":"短信内容(必选)",
"phone":"电话号码,若多个号码用”,”隔开(必选)"
},
{
"content":"短信内容(必选)",
"phone":"电话号码,若多个号码用”,”隔开(必选)"
},
......
{
"content":"短信内容(必选)",
"phone":"电话号码,若多个号码用”,”隔开(必选)"
}
]
}
}
注意:每次请求提交的号码数请控制在500个以内。多个号码的分隔符为英文半角”,”。短信内容不能超 过1000字符。
请求包体示例:
3.1.2.2不带变量发送:
不带变量发送在content中提交素材上传接口中返回的模板号即可
请求方法:post
https://sms.ccell.cn/sms3_api/jsonapi/jsonrpc2.jsp
{
"id":1,
"method":"send",
"params":{
"userid":"200001",
"password":"abcdhjskdfjjjjjjjjjjjjjjjjjjsjk65",
"submit":[
{
"content":"templateId=1000009【签名】",
"phone":"12345678910"
}
]
}
}
3.1.2.3带变量发送:
带变量发送在content中提交素材上传接口中返回的模板号并且带上变量名和变量值
请求方法:post
https://sms.ccell.cn/sms3_api/jsonapi/jsonrpc2.jsp
{
"id":1,
"method":"send",
"params":{
"userid":"200001",
"password":"abcdhjskdfjjjjjjjjjjjjjjjjjjsjk65",
"submit":[
{
"content":"templateId=1000009#variable1=xxx#variable2=xxx【签 名】",
"phone":"12345678910"
}
]
}
}
3.1.2.4返回值说明
返回值为标准的JSON
返回值包体说明:
{
"id":"id",
"result":[
{
"info":"描述",
"msgid":"序列号",
"phone":"手机号码",
"return":"状态码"
},
{
"info":"描述",
"msgid":"序列号",
"phone":"手机号码",
"return":"状态码"
},
{
"info":"描述",
"msgid":"序列号",
"phone":"手机号码",
"return":"状态码"
}
]
}
返回值包体示例:
{
"id":1,
"result":[
{
"info":"成功",
"msgid":"4495599595170205200",
"phone":"13800000000",
"return":"0"
},
{
"info":"成功",
"msgid":"4495599595680112600",
"phone":"13800000001",
"return":"0"
},
{
"info":"成功",
"msgid":"4495599598710528600",
"phone":"13800300000",
"return":"0"
}
]
}
注意:msgid为唯一序列,状态报告会原样返回。如果验证不成功会返回{"error":{"code":状态 码,"message":"描述"},"id":1}形式的返回值。
4.获取视频短信状态接口
4.2获取状态报告**
4.2.1接口地址
https://sms.ccell.cn/sms3_api/jsonapi/jsonrpc2.jsp
4.2.2参数说明
4.2.2.1请求参数
请求包体必须为标准的JSON
请求包体说明:
{
"id":"id",
"method":"接口类型,状态为report(必填)",
"params":{
"userid":"账号(必填)",
"password":"密码(必填)"
}
}
请求包体示例:
{
"id":1,
"method":"report",
"params":{
"userid":"200001",
"password":"123456"
}
}
4.2.2.2返回值说明
返回值为标准的JSON
返回值包体说明:
{
"id":"id",
"result":[
{
"info":"描述",
"linkid":"原样返回的自定义序列码,没有使用为空",
"msgid":"序列号",
"phone":"手机号码",
"recvtime":"时间",
"status":"状态码"
},
{
"info":"描述",
"linkid":"原样返回的自定义序列码,没有使用为空",
"msgid":"序列号",
"phone":"手机号码",
"recvtime":"时间",
"status":"状态码"
},
{
"info":"描述",
"linkid":"原样返回的自定义序列码,没有使用为空",
"msgid":"序列号",
"phone":"手机号码",
"recvtime":"时间",
"status":"状态码"
}
]
}
返回值包体示例:
{
"id":1,
"result":[
{
"info":"成功",
"linkid":"100001111110",
"msgid":"4495599595170205200",
"phone":"13800000000",
"recvtime":"2015-10-10 10:54:15.0",
"status":"0"
},
{
"info":"ERRORRD",
"linkid":"100001111111",
"msgid":"4495599595680112600",
"phone":"13800000001",
"recvtime":"2015-10-10 10:54:15.0",
"status":"-1"
},
{
"info":"成功",
"linkid":"100001111112",
"msgid":"4495599598710528600",
"phone":"13800300000",
"recvtime":"2015-10-10 10:54:15.0",
"status":"0"
}
]
}
注意:每次连接最多返回300条状态。如果没有状态会返回空的{"id":1,"result":[]}。如果验证不成功会返 回{"error":{"code":状态码,"message":"描述"},"id":1}形式的返回值。
5.获取视频短信上行接口
5.3获取上行
5.3.1接口地址
https://sms.ccell.cn/sms3_api/jsonapi/jsonrpc2.jsp
5.3.2参数说明
5.3.2.1请求参数
请求包体必须为标准的JSON
请求包体说明:
{
"id":"id:",
"method":"接口类型,上行为upmsg (必填)",
"params":{
"userid":"账号(必填)",
"password":"密码(必填)"
}
}
请求包体示例:
{
"id":1,
"method":"upmsg",
"params":{
"userid":"200001",
"password":"123456"
}
}
5.3.2.2返回值说明
返回值为标准的JSON
返回值包体说明:
{
"id":"id",
"result":[
{
"msgcontent":"上行内容",
"phone":"手机号码",
"spnumber":"端口号",
"motime":"时间"
},
{
"msgcontent":"上行内容",
"phone":"手机号码",
"spnumber":"端口号",
"motime":"时间"
},
{
"msgcontent":"上行内容",
"phone":"手机号码",
"spnumber":"端口号",
"motime":"时间"
}]
}
返回值包体示例:
{
"id":1,
"result":[
{
"msgcontent":"知道了",
"phone":"13800000000",
"spnumber":"0001",
"motime":"2015-10-10 17:48:46"
},
{
"msgcontent":"ok",
"phone":"13800000001",
"spnumber":"0001",
"motime":"2015-10-10 18:15:19"
},
{
"msgcontent":"收到",
"phone":"13800300000",
"spnumber":"0001",
"motime":"2015-10-10 18:15:29"
}
]
}
注意:每次连接最多返回100条上行。如果没有上行会返回空的{"id":1,"result":[]}。如果验证不成功会返 回{"error":{"code":状态码,"message":"描述"},"id":1}形式的返回值。
6.状态码说明
| 状态码 | 说明 |
| 0 | 成功 |
| 1001001 | 参数不完整 |
| 1001002 | 余额不足 |
| 1001003 | 账号已冻结 |
| 1001004 | 密码不正确 |
| 1001005 | 访问IP受限 |
| 1001006 | 并发数超限 |
| 1001007 | 短信附加语不符 |
| 1004001 | 手机号不可识别 |
| 1004002 | 未配置有效发送规则 |
| 1004003 | 短信内容必须有签名 |
| 1004004 | 短信内容必须指定签名 |
| 1004005 | 短信内容指定签名 |
| 1004006 | 无可用通道 |
| 1004007 | 模板不匹配 |
| 1004008 | 不能发黑名单号码 |
| 1004009 | 非白名单号码 |
| 1004010 | 不能发黑词内容 |
| 1004011 | 内容中不包括白词 |
| 1004012 | 定时发送时间参数不正确 |
| 1004013 | 定时发送时间不能大于50天 |
| 1004014 | 定时发送时间不能小于当前时间 |
| 1004015 | 短信签名限20字符 |
| 1001999 | 接口系统错 |