# 模板管理API

# 模板上传

支持上传的素材和资源类型有:

文字text :txt (utf-8编码的文字)

图片image :jpg/jpeg/png/gif

音频audio :mp3/wav

视频video :mp4/3gp

# 接口定义

接口名称
tpl_upload
接口描述 上传由一个或多个图片、音频、视频资源文件组成的模板,模板总大小不超过 1.9M。 上传的资源文件支持内容文件流、内容地址(URL)两种方式。 上传成功后将获得唯一的模板Id,在模板审核通过后,可用于发送。
请求和回应方式 HTTP/HTTPS POST 方式 UTF-8 编码 JSON 报文传输
请求URL http://tpl-rms.monyun.cn:7243/rms/v3/std/tpl/tpl_upload
https://tpl-rms.monyun.cn:7129/rms/v3/std/tpl/tpl_upload

# 请求参数

参数
参数名称
参数约束
参数约束
userid 用户账号 String,必填 长度最大6个字符,字母统一大写,用于接口鉴权。
pwd 鉴权信息 String,必填 定长小写32位加密字符串。 规则详见“接口鉴权规则”。
timestamp 时间戳 String,必填 24小时制格式: MMDDHHMMSS,即月日时分秒,定长10位,月、日、时、分、秒每段不足2位时左补0
expire 模板有效期 String,必填 单位:天。必须取整。
name 模板名称 String,选填 模板的别名,用来帮助记忆。 最大不超过100个字,若使用中文需经过utf-8编码
title 富信主题 String,必填 最大不超过15个字,若使用中文需经过utf-8编码,主题不能包含【】,否则审核会不通过。
reslist 富信资源列表 JSON数组,必填 富信模板由一个个按顺序排列的资源组成,资源类型支持文本、图片、音频、视频,资源数据结构详见下表。 注意: 资源在JSON数组中的顺序将决定其在手机上的显示顺序,数组大小不能超过10
sign 数字签名 String,必填 数字签名,用于防止模板内容和请求报文被篡改。 算法:hexstr_lowercase(md5(expire+name+title+userid+明文密码+timestamp+reslist))
custid 自定义流水号 String,选填 该模板在您业务系统内的Id。 最大可支持64位的ASCII字符串:字母、数字、下划线、减号,如不需要则不用提交此字段或填空。 注意: 若填写该字段,必须保证唯一
remarks 模板备注 String,选填 模板备注信息,用于填写对模板审核的期望或要求,最大不超过200个字。 如:希望30分钟内完成审批、仅需审批移动等
reminders 模板审批结果提醒对象 String,选填 用于发送提醒短信,将模板审批的结果和意见及时通知到指定对象。 目前仅支持11纯数字国内手机号码,多个号码用英文逗号分隔,最多支持5个号码。

# reslist资源数据结构:

参数
参数名称
参数约束
参数约束
index 帧数序号-本帧素材序号 String,选填 序号都从1开始,例如: 1-1:表示第1帧第1个元素 1-2:表示第1帧第2个元素 2-1:表示第2帧第1个元素 注意:每帧支持最多2个元素,2个元素中必须包含有文本。 如果未填该字段,则每个元素独占一帧并按数组顺序排序。
type 资源类型 String,必填 类型为文字填:txt 类型为图片填:jpg/jpeg/png/gif 类型为音频填:mp3/wav 类型为视频填:mp4/3gp 统一小写
name 资源名称 String,选填 最大不超过100个字,若使用中文需经过utf-8编码
source 资源来源 String,必填 资源来自于文字/文件流/URL外链 txt: 表示资源内容是纯文字 file:表示资源内容来源于文件流 url: 表示资源内容来源于URL外链
content 资源内容 String,必填 当source=txt时,填写经过utf-8编码的文字; 当source=file时,填写经过base64编码的文件流; 当source=url时,填写资源URL地址,URL长度不能超过1024个字节; 注意: 支持文字/图片,文字和图片使用#p_n#参数变量占位,n为1~100内的数字,不同类型的资源中不允许有重复的参数占位符,相同类型的资源同一参数占位符可复用。 如:#p_1#已表示是文本参数占位符时,不可以同时是图片又是文本参数占位符。 不能包含除模板签名外的“【】”。

# 示例:

{
	"userid": "XIAO18",
	"pwd": "973e01b39b87e3edf1262276bb25e119",
	"timestamp": "0124135902",
	"expire": "60",
	"name": "模板名称",
	"title": "富信主题",
	"reslist": [{
		"index": "1-1",
		"type": "txt",
		"name": "文本.txt",
		"source": "txt",
		"content": "尊敬的#p_1#你好,你#p_2#月的账单如下:"
	}, {
		"index": "1-2",
		"type": "jpg",
		"name": "图片.jpg",
		"source": "file",
		"content": "图片文件流的base64编码字符串"
	}, {
		"index": "2-1",
		"type": "jpg",
		"name": "图片.jpg",
		"source": "url",
		"content": "http://abc.com/1.jpg"
	}, {
		"index": "3-1",
		"type": "mp3",
		"name": "声音.mp3",
		"source": "file",
		"content": "声音文件流的base64编码字符串"
	}, {
		"index": "4-1",
		"type": "mp4",
		"name": "视频.mp4",
		"source": "url",
		"content": "https://pics0.baidu.com/feed/5243fbf2b2.mp4"
	}],
	"sign": "70e55826e6e23ac0867734104a38f17a",
	"custid": "70e55826e6e-23456789",
	"remarks": "请30分钟内审核完成,只需过审移动",
	"reminders": "137xxxxxxxx,132xxxxxxxx"
}

# 回应参数

参数
参数名称
参数约束
参数约束
result 请求处理结果 Int,必填 0:成功 非0:失败,详见 错误代码表
desc 处理结果描述 String,必填 对result结果的详细描述,长度不超过1024字节
custid 自定义流水号 String,必填 默认与请求报文中的custid保持一致,若请求报文中没有custid参数或值为空,则将tplid的值赋给custid。 result非0时,custid为空。
tplid 模板Id String,必填 该Id用来唯一标识上传的模板。 最大长度不超20个字符,由字母、数字、下划线、减号组成。 result非0时,tplid为空。

# 示例:

{
	"result": 0,
	"custid": "70e55826e6e-23456789",
	"tplid": "808405902",
	"desc": "操作成功"
}

# 模板修改

支持上传的素材和资源类型有:

文字text :txt (utf-8编码的文字)

图片image :jpg/jpeg/png/gif

音频audio :mp3/wav

视频video :mp4/3gp

# 接口定义

接口名称
tpl_modify
接口描述 由一个或多个图片、音频、视频资源文件组成的新模板,修改后模板总大小不超过1.9M。 上传的资源文件支持内容文件流、内容地址(URL)两种方式。 只允许对审核不通过的模板进行修改,修改后的模板将会重新进行审核,审核通过后才可用于发送。
请求和回应方式 HTTP/HTTPS POST 方式 UTF-8编码 JSON报文传输
请求URL http://tpl-rms.monyun.cn:7243/rms/v3/std/tpl/tpl_modify
https://tpl-rms.monyun.cn:7129/rms/v3/std/tpl/tpl_modify

# 请求参数

参数
参数名称
参数约束
参数约束
userid 用户账号 String,必填 长度最大6个字符,字母统一大写,用于接口鉴权。
pwd 鉴权信息 String,必填 定长小写32位加密字符串。 规则详见“接口鉴权规则”。
timestamp 时间戳 String,必填 24小时制格式: MMDDHHMMSS,即月日时分秒,定长10位,月、日、时、分、秒每段不足2位时左补0
tplid 模板Id String,必填 需要进行修改的模板Id。 最大长度不超20个字符,由字母、数字、下划线、减号组成。
expire 模板有效期 String,必填 单位:天。必须取整。
name 模板名称 String,选填 模板的别名,用来帮助记忆。 最大不超过100个字,若使用中文需经过utf-8编码
title 富信主题 String,必填 最大不超过15个字,若使用中文需经过utf-8编码,不能包含“【】”
reslist 富信资源列表 JSON数组,必填 参见“模板上传”中reslist字段的描述
sign 数字签名 String,必填 数字签名,用于防止模板内容和请求报文被篡改。 算法:hexstr_lowercase(md5(expire+name+title+userid+明文密码+timestamp+reslist))
custid 自定义流水号 String,选填 该模板在您业务系统内的Id。 最大可支持64位的ASCII字符串:字母、数字、下划线、减号,如不需要则不用提交此字段或填空。 注意: 若填写该字段,必须保证唯一
remarks 模板备注 String,选填 模板备注信息,用于填写对模板审核的期望或要求,最大不超过200个字。 如:希望30分钟内完成审批、仅需审批移动等
reminders 审批结果提醒对象 String,选填 用于发送提醒短信,将模板审批的结果和意见及时通知到指定对象。 目前仅支持11纯数字国内手机号码,多个号码用英文逗号分隔,最多支持5个号码。

# 示例:

{
	"userid": "XIAO18",
	"pwd": "973e01b39b87e3edf1262276bb25e119",
	"timestamp": "0124135902",
	"tplid": "808405902",
	"expire": "60",
	"name": "模板名称",
	"title": "富信主题",
	"reslist": [{
		"index": "1-1",
		"type": "txt",
		"name": "文本.txt",
		"source": "txt",
		"content": "尊敬的#p_1#你好,你#p_2#月的账单如下:"
	}, {
		"index": "1-2",
		"type": "jpg",
		"name": "图片.jpg",
		"source": "file",
		"content": "图片文件流的base64编码字符串"
	}, {
		"index": "2-1",
		"type": "jpg",
		"name": "图片.jpg",
		"source": "url",
		"content": "http://abc.com/1.jpg"
	}, {
		"index": "3-1",
		"type": "mp3",
		"name": "声音.mp3",
		"source": "file",
		"content": "声音文件流的base64编码字符串"
	}, {
		"index": "4-1",
		"type": "mp4",
		"name": "视频.mp4",
		"source": "url",
		"content": "https://pics0.baidu.com/feed/5243fbf2b2.mp4"
	}],
	"sign": "70e55826e6e23ac0867734104a38f17a",
	"custid": "70e55826e6e-23456789",
	"remarks": "请30分钟内审核完成,只需过审移动",
	"reminders": "137xxxxxxxx,132xxxxxxxx"
}

# 回应参数

参数
参数名称
参数约束
参数约束
result 请求处理结果 Int,必填 0:成功 非0:失败,详见“错误代码表
desc 处理结果描述 String,必填 对result结果的详细描述,长度不超过1024字节
custid 自定义流水号 String,必填 默认与请求报文中的custid保持一致,若请求报文中没有custid参数或值为空,则将tplid的值赋给custid。 result非0时,custid为空。
tplid 模板Id String,必填 默认与请求报文中的tplid保持一致,若result非0时,tplid为空。

# 示例:

{
	"result": 0,
	"custid": "70e55826e6e-23456789",
	"tplid": "808405902",
	"desc": "操作成功"
}

# 模板管理

# 接口定义

接口名称
tpl_mgr
接口描述 管理指定的模板,可启用、禁用、删除指定模板
请求和回应方式 HTTP/HTTPS POST 方式 UTF-8编码 JSON报文传输
请求URL http://tpl-rms.monyun.cn:7243/rms/v3/std/tpl/tpl_mgr
https://tpl-rms.monyun.cn:7129/rms/v3/std/tpl/tpl_mgr

# 请求参数

参数
参数名称
参数约束
参数约束
userid 用户账号 String,必填 长度最大6个字符,字母统一大写,用于接口鉴权。
pwd 鉴权信息 String,必填 定长小写32位加密字符串, 规则详见“接口鉴权规则”。
timestamp 时间戳 String,必填 24小时制格式: MMDDHHMMSS,即月日时分秒,定长10位,月、日、时、分、秒每段不足2位时左补0
tplid 模板Id String,必填 填写要进行管理的模板Id,多个模板Id之间用英文逗号分隔,最大支持一次管理1000个模板
optype 操作类型 String,必填 1:启用 2:禁用 3:删除

# 示例:

{
	"userid": "XIAO18",
	"pwd": "973e01b39b87e3edf1262276bb25e119",
	"timestamp": "0124135902",
	"tplid": "800000001,800000002",
	"optype": "1"
}

# 回应参数

参数
参数名称
参数约束
参数约束
result 请求处理结果 Int,必填 0:成功 非0:失败,详见“错误代码表
desc 处理结果描述 String,必填 对result结果的详细描述,长度不超过1024字节
detail 模板处理结果数组 JSON数组,必填 模板处理结果数组,数据结构详见下表。 result非0时,数组为空。

detail数据结构:

参数
参数名称
参数约束
参数约束
tplid 模板Id String,必填 对应模板管理请求中的模板Id
result 模板处理结果 Int,必填 该模板的处理结果,详见“错误代码表
desc 模板处理结果描述 String,必填 该模板处理结果的描述,长度不超过1024字节

# 示例:

{
	"result": 0,
	"desc": "操作成功",
	"detail": [{
		"tplid": "800000001",
		"result": 0,
		"desc": "操作成功"
	}, {
		"tplid": "800000002",
		"result": -100058,
		"desc": "模板不存在"
	}]
}

# 模板状态回调

# 接口定义

接口名称
callback_tplsts
接口描述 模板审核的结果或模板状态发生变化将通过回调的方式推送给接入客户。 同一个模板,若回调失败,最多重试3次。当因为回调失败缺失了审核状态时,可以调用模板状态查询接口查询模板审核结果和状态。 为了不影响推送速度,建议接收到数据后立即回应,使用另外的线程异步处理业务逻辑。
请求和回应方式 HTTP/HTTPS POST 方式 UTF-8编码 JSON报文传输
请求URL 接入客户提供回调URL

# 请求参数

参数 参数名称 参数约束
参数约束
userid 用户账号 String,必填 长度最大6个字符,字母统一大写,用于接口鉴权。
pwd 鉴权信息 String,必填 定长小写32位加密字符串。 规则详见“接口鉴权规则
timestamp 时间戳 String,必填 24小时制格式: MMDDHHMMSS,即月日时分秒,定长10位,月、日、时、分、秒每段不足2位时左补0
cmd 请求命令字 String,必填 固定填写VFYSTS_REQ
seqid 请求包序号 Int,必填 唯一的标识本次推送请求,每次网络请求均需加1
tplsts 模板状态数组 JSON数组,必填 模板状态JSON数组,数据结构详见下表

tplsts数据结构:

参数
参数名称
参数约束
参数约束
custid 自定义流水号 String,选填 该模板在您业务系统内的Id。 最大可支持64位的ASCII字符串:字母、数字、下划线、减号,如不需要则不用提交此字段或填空。
tplid 模板Id String,必填 审核结果或状态发生了变化的模板的Id。 最大长度不超20个字符,由字母、数字、下划线、减号组成。
tplsize 模板大小 Int,必填 模板的大小,单位:字节 status非0时,tplsize为0。
timestamp 时间戳 String,必填 记录状态变化的时间戳,若同时收到多个状态变化回调,可使用该时间戳来判断时序。
validtime 模板截止有效日期 Int,必填 模板截止有效日期,格式:YYYYMMDD, 0:表示永久有效; 示例: 20200131:表示2020/01/31 23:59:59后模板过期。
status 状态 Int,必填 0:正常可用 1:审核中 2:审核不通过 3:模板已禁用 4:模板不存在 5: 模板已过期
desc 状态描述 String,必填 对模板状态的描述,若状态是审核不通过或被禁用,描述表示的是不通过或禁用的原因。 长度不超过1024字节
statusdetail 模板状态详情 JSON数组,必填 运营商的模板状态详情,数据结构详见下表
previewurl 模板预览地址 String,选填 模板预览地址,如:http://abc.com/123456
name 模板名称 String,必填 模板名称
title 富信主题 String,必填 富信主题
tplsign 模板签名 String,必填 模板签名
createtime 模板创建时间 String,必填 模板创建时间, 格式:YYYY-MM-DD HH:MM:SS

statusdetail数据结构:

参数
参数名称
参数约束
参数约束
carrier 运营商 String,必填 cmcc:中国移动 cucc:中国联通 ctcc:中国电信 oversea: 港澳台及国外 unknown:未知
status 状态 Int,必填 0:正常可用 1:审核中 2:审核不通过 3:模板已禁用 4:模板不存在 5: 模板已过期
desc 状态描述 String,必填 对模板状态的描述,若状态是审核不通过或被禁用,描述表示的是不通过或禁用的原因。 长度不超过1024字节

# 示例:

{
	"userid": "XIAO18",
	"pwd": "973e01b39b87e3edf1262276bb25e119",
	"timestamp": "0124135902",
	"cmd": "VFYSTS_REQ",
	"seqid": 1,
	"tplsts": [{
		"tplid": "808405902",
		"custid": "70e55826e6e-23456789",
		"tplsize": 102311,
		"timestamp": "1548669701415",
		"validtime": 20200131,
		"status": 0,
		"desc": "正常可用",
		"statusdetail": [{
			"carrier": "cmcc",
			"status": 5,
			"desc": "正常可用"
		}, {
			"carrier": "cucc",
			"status": 0,
			"desc": "正常可用"
		}, {
			"carrier": "ctcc",
			"status": 2,
			"desc": "审核不通过,携带敏感词汇"
		}],
		"previewurl": "http://abc.com/111111",
		"name": "模板名称1",
		"title": "富信主题1",
		"tplsign": "梦网科技",
		"createtime": "2020-06-02 09:38:51"
	}, {
		"tplid": "800000001",
		"custid": "45gfeoy7e-3456df",
		"tplsize": 3425,
		"timestamp": "1548669701415",
		"validtime": 0,
		"status": 0,
		"desc": "正常可用",
		"statusdetail": [{
			"carrier": "cmcc",
			"status": 5,
			"desc": "正常可用"
		}, {
			"carrier": "cucc",
			"status": 0,
			"desc": "正常可用"
		}, {
			"carrier": "ctcc",
			"status": 2,
			"desc": "审核不通过,携带敏感词汇"
		}],
		"previewurl": "http://abc.com/222222",
		"name": "模板名称2",
		"title": "富信主题2",
		"tplsign": "梦网科技",
		"createtime": "2020-07-12 10:08:06"
	}]
}

# 回应参数

参数 参数名称 参数约束
参数约束
cmd 回应命令字 String,必填 固定填写VFYSTS_RESP
seqid 回应包序号 Int,必填 与请求中的seqid保持一致
result 请求处理结果 Int,必填 0:成功 非0:失败
desc 处理结果描述 String,必填 对result结果的详细描述,长度不超过1024字节

# 示例:

{
	"cmd": "VFYSTS_RESP",
	"seqid": 1,
	"result": 0,
	"desc": "接收成功"
}

# 模板状态查询

# 接口定义

接口名称
tplsts_query
接口描述 查询指定Id的模板审核结果和状态
请求和回应方式 HTTP/HTTPS POST 方式 UTF-8编码 JSON报文传输
请求URL http://tpl-rms.monyun.cn:7243/rms/v3/std/tpl/tplsts_query
https://tpl-rms.monyun.cn:7129/rms/v3/std/tpl/tplsts_query

# 请求参数

参数
参数名称
参数约束
参数约束
userid 用户账号 String,必填 长度最大6个字符,字母统一大写,用于接口鉴权。
pwd 鉴权信息 String,必填 定长小写32位加密字符串。 规则详见“接口鉴权规则”。
timestamp 时间戳 String,必填 24小时制格式: MMDDHHMMSS,即月日时分秒,定长10位,月、日、时、分、秒每段不足2位时左补0
tplid 模板ID列表 String,必填 多个模板Id之间用英文逗号分隔。 最大支持一次查询1000个模板的状态。

# 示例:

{
	"userid": "XIAO18",
	"pwd": "973e01b39b87e3edf1262276bb25e119",
	"timestamp": "0124135902",
	"tplid": "808405902,800000002"
}

# 回应参数

参数
参数名称
参数约束
参数约束
result 请求处理结果 Int,必填 0:成功 非0:失败,详见“错误代码表
desc 处理结果描述 String,必填 对result结果的详细描述,长度不超过1024字节
tplsts 模板状态数组 JSON数组,必填 参见“模板状态回调”中tplsts字段的描述。 result非0时,tplsts为空数组。

# 示例:

{
	"result": 0,
	"desc": "操作成功",
	"tplsts": [{
		"tplid": "808405902",
		"custid": "70e55826e6e-23456789",
		"tplsize": 102311,
		"timestamp": "1548669701415",
		"chgrade": 1,
		"validtime": 20200131,
		"status": 0,
		"desc": "正常可用",
		"statusdetail": [{
			"carrier": "cmcc",
			"status": 5,
			"desc": "正常可用"
		}, {
			"carrier": "cucc",
			"status": 0,
			"desc": "正常可用"
		}, {
			"carrier": "ctcc",
			"status": 2,
			"desc": "审核不通过,携带敏感词汇"
		}],
		"previewurl": "http://abc.com/111111",
		"name": "模板名称1",
		"title": "富信主题1",
		"tplsign": "梦网科技",
		"createtime": "2020-06-02 09:38:51"
	}, {
		"tplid": "800000001",
		"custid": "45gfeoy7e-3456df",
		"tplsize": 3425,
		"timestamp": "1548669701415",
		"chgrade": 1,
		"validtime": 0,
		"status": 0,
		"desc": "正常可用",
		"statusdetail": [{
			"carrier": "cmcc",
			"status": 5,
			"desc": "正常可用"
		}, {
			"carrier": "cucc",
			"status": 0,
			"desc": "正常可用"
		}, {
			"carrier": "ctcc",
			"status": 2,
			"desc": "审核不通过,携带敏感词汇"
		}],
		"previewurl": "http://abc.com/222222",
		"name": "模板名称2",
		"title": "富信主题2",
		"tplsign": "梦网科技",
		"createtime": "2020-06-02 09:38:51"
	}]
}