知产文书配置接口
接口编号
WS01分类知识产权服务 / 作品著作权状态启用1、接口说明
知产文书配置维护。对应后台「知产文书配置」,开发者可外部请求对本系统的文书配置做增删改查:按发起请求的域名归属到对应系统,写入 mzy_wenshuset。支持 5 个动作(act):party=检索著作权人/作者(核对登记信息)、save=新增或更新一份文书(全字段 upsert)、get=取单条、list=列表检索+分页、del=删除。文书类型(wstype)与受理机构(bqj)走字典;著作权人/作者清一色传【姓名+证件号码】,服务端反查本系统用户 id 后存储;底图/签字图清一色传 http(s) 图片 URL(不收平台文件短串),服务端下载并按内容核验后转存文件平台、内部落库短串;排版用 7 个独立标签参数(xmz/day/qm/xingming/zhengjianhao/zzr/zpm)分别设定 show/size/x/y,比整包 layout JSON 更易懂。任一保存都会回落「待审」,需服务商审核后生效。
2、接口信息
| 请求地址 | https://quanzhou.muzhiyun.com/api/wenshuset.do |
| 请求方式 | POST |
| 请求格式 | application/json; charset=utf-8 |
| 响应格式 | application/json; charset=utf-8 |
| 超时时间 | 60 秒(建议) |
| 计费方式 | 免费 |
本接口免费,调用不计费、不扣款。
3、鉴权说明
所有请求必须携带下列三个公共参数,缺一不可。它们既是请求参数,也参与签名。
| 参数名 | 说明 | 类型 | 必填 | 示例 | 备注 |
|---|---|---|---|---|---|
appid | 应用ID | String(32) | 是 | muzhiyun | 由服务商提供;亦支持系统名下权利人的用户编号,即本系统的登陆账户 |
sendtime | 请求时间戳 | Int | 是 | 1790784000 | Unix 时间戳(秒);与服务器时间相差过大视为过期请求 |
sign | 签名 | String(32) | 是 | BEE42F7A74F4482A9A405EDB229CFB6C | 签名值:参与签名的参数按变量名升序拼接后加密,不含本字段 |
签名算法
1) 取本次请求的全部参数(不含 sign 自身); 2) 按参数名 ASCII 升序排序,拼接成 k1=v1&k2=v2&…; 3) 末尾追加 &key=你的AppKey; 4) 对整串做 MD5 后转大写,即得 sign。
调用示例 · 按本接口真实示例值实算一遍
你的 AppKey(仅本地签名用,不随请求发送):
YOUR_APP_KEY1
参与签名的参数(已剔除 sign 自身,按参数名升序)
act=save&appid=muzhiyun&bqj=99&day={"show":1,"size":22,"x":120,"y":430}&day001=2026-01-01&day002=2026-12-31&exptime=2026-12-31&file_jpg=https://x.com/bg.png&id=12&qianzi=https://x.com/qz.png&qiyong=1&qm={"show":1,"size":60,"x":300,"y":520}&sendtime=1792521163&text={"xmz":"我的作品","day":"2026-01-01"}&wstype=1&xingming={"show":1,"size":22,"x":120,"y":300}&xmz={"show":1,"size":22,"x":120,"y":280}&zhengjianhao={"show":1,"size":22,"x":120,"y":340}&zhuquanren_arr=[{"name":"王阿红","idcard":"110101199001011234"}]&zpm={"show":1,"size":22,"x":340,"y":520}&zuozhe_arr=[{"name":"李明","idcard":"110101199001015678"}]&zzr={"show":1,"size":22,"x":120,"y":230}2
末尾追加 &key=你的AppKey
act=save&appid=muzhiyun&bqj=99&day={"show":1,"size":22,"x":120,"y":430}&day001=2026-01-01&day002=2026-12-31&exptime=2026-12-31&file_jpg=https://x.com/bg.png&id=12&qianzi=https://x.com/qz.png&qiyong=1&qm={"show":1,"size":60,"x":300,"y":520}&sendtime=1792521163&text={"xmz":"我的作品","day":"2026-01-01"}&wstype=1&xingming={"show":1,"size":22,"x":120,"y":300}&xmz={"show":1,"size":22,"x":120,"y":280}&zhengjianhao={"show":1,"size":22,"x":120,"y":340}&zhuquanren_arr=[{"name":"王阿红","idcard":"110101199001011234"}]&zpm={"show":1,"size":22,"x":340,"y":520}&zuozhe_arr=[{"name":"李明","idcard":"110101199001015678"}]&zzr={"show":1,"size":22,"x":120,"y":230}&key=YOUR_APP_KEY3
整串做 MD5 后转大写,得到 sign
542D30562D76916328B60F5FD13FB2F6
4
最终请求参数(JSON 包,作为请求 Body 发送)
{
"act": "save",
"appid": "muzhiyun",
"bqj": "99",
"day": "{\"show\":1,\"size\":22,\"x\":120,\"y\":430}",
"day001": "2026-01-01",
"day002": "2026-12-31",
"exptime": "2026-12-31",
"file_jpg": "https://x.com/bg.png",
"id": "12",
"qianzi": "https://x.com/qz.png",
"qiyong": "1",
"qm": "{\"show\":1,\"size\":60,\"x\":300,\"y\":520}",
"sendtime": "1792521163",
"text": "{\"xmz\":\"我的作品\",\"day\":\"2026-01-01\"}",
"wstype": "1",
"xingming": "{\"show\":1,\"size\":22,\"x\":120,\"y\":300}",
"xmz": "{\"show\":1,\"size\":22,\"x\":120,\"y\":280}",
"zhengjianhao": "{\"show\":1,\"size\":22,\"x\":120,\"y\":340}",
"zhuquanren_arr": "[{\"name\":\"王阿红\",\"idcard\":\"110101199001011234\"}]",
"zpm": "{\"show\":1,\"size\":22,\"x\":340,\"y\":520}",
"zuozhe_arr": "[{\"name\":\"李明\",\"idcard\":\"110101199001015678\"}]",
"zzr": "{\"show\":1,\"size\":22,\"x\":120,\"y\":230}",
"sign": "542D30562D76916328B60F5FD13FB2F6"
}上例 AppKey 写作
YOUR_APP_KEY,请换成你自己的 AppKey 重算 sign —— sign 与 AppKey 绑定,同样的参数换 AppKey 会得到完全不同的 sign。复制本例后,把 YOUR_APP_KEY 替换为你自己的 AppKey,再按 ①②③ 重算 sign 即可直接调用(sendtime 为当前时间戳,300 秒内有效)。排序只按参数名,不看参数值;布尔值按 1/0 参与拼接;数组型参数不参与签名。时间戳要求:
sendtime 为 10 位 Unix 秒级时间戳,与服务器时间相差超过 300 秒 视为过期请求。AppID / AppKey 由开放平台发放,可在「用户管理 → 开发者凭证」中查看。4、请求参数
以下参数通过 Body(application/json) 传递
| 参数名 | 说明 | 类型 | 必填 | 示例 | 备注 |
|---|---|---|---|---|---|
id | 记录ID | Int | 否 | 12 | 更新时传入目标记录 id;不传=新增 |
day002 | 截止日期 | Date | 否 | 2026-12-31 | 合同/职务期间截止日 YYYY-MM-DD;即有效期至。起止不可颠倒 |
day001 | 起始日期 | Date | 否 | 2026-01-01 | 合同/职务期间起始日 YYYY-MM-DD(按文书类型可能必填,如职务作品创作合同) |
text | 填空文字 | JSON | 否 | {"xmz":"我的作品","day":"2026-01-01"} | 各标签要打印的填空内容(写什么印什么),key 须为合法标签名(xmz/day/qm/xingming/zhengjianhao/zzr…);姓名/证件号为自动取值标签,可不填 |
zpm | 标签·印章 | JSON | 否 | {"show":1,"size":22,"x":340,"y":520} | 标签⑦印章:{show,size,x,y} |
zzr | 标签·著作权人名称 | JSON | 否 | {"show":1,"size":22,"x":120,"y":230} | 标签⑥著作权人名称:{show,size,x,y} |
zhengjianhao | 标签·证件号码 | JSON | 否 | {"show":1,"size":22,"x":120,"y":340} | 标签⑤证件号码(自动取值标签:生成时按著作权人证件号填充,仅调显隐/字号/位置) |
xingming | 标签·姓名 | JSON | 否 | {"show":1,"size":22,"x":120,"y":300} | 标签④姓名(自动取值标签:生成时按著作权人姓名填充,仅调显隐/字号/位置) |
qm | 标签·签名图片 | JSON | 否 | {"show":1,"size":60,"x":300,"y":520} | 标签③签名图片:{show,size,x,y},size 默认 60 |
day | 标签·日期标签 | JSON | 否 | {"show":1,"size":22,"x":120,"y":430} | 标签②日期标签:{show,size,x,y},默认打印 {{today}}(生成时自动替换当天日期) |
xmz | 标签·作品名称 | JSON | 否 | {"show":1,"size":22,"x":120,"y":280} | 标签①作品名称:{show:是否显示(1/0), size:字号, x:横坐标, y:纵坐标}。三坐标单位为底图像素,未传回落默认排版 |
qianzi | 签字图 | String | 否 | https://x.com/qz.png | 签字图文件:同底图,清一色传 http(s) 图片 URL(不收平台短串)。可选,更新时未传保留原值 |
file_jpg | 底图 | String | 是 | https://x.com/bg.png | 文书底图文件:清一色传【http(s) 图片 URL】(不收平台文件短串),服务端下载→内容核验→转存文件平台→内部落库短串。新增必填,更新时未传则保留原值(含原尺寸) |
exptime | 有效期至 | Date | 否 | 2026-12-31 | 有效期截止日 YYYY-MM-DD;留空=长期有效。等于合同截止日 day002 |
qiyong | 是否启用 | Int | 否 | 1 | 1=启用(默认) 0=停用 |
zuozhe_arr | 作者 | JSON | 否 | [{"name":"李明","idcard":"110101199001015678"}] | 作者数组(关联作者),格式同 zhuquanren_arr;部分文书类型需指定作者 |
zhuquanren_arr | 著作权人 | JSON | 否 | [{"name":"王阿红","idcard":"110101199001011234"}] | 著作权人数组,支持多人合作:每项 {"name":姓名, "idcard":证件号码},两项均必填。服务端按姓名+证件号反查本系统用户 id 后存储(外部不传、也不感知内部 user id);匹配不到会报错 |
bqj | 受理机构 | Int | 否 | 99 | 受理机构 id(字典 shoulidanwei):如 99=中国版权保护中心、88=中国商标局、31=上海市版权局…;不传默认 0(未指定受理机构) |
wstype | 文书类型 | Int | 是 | 1 | 文书类型 id(字典 wenshu_type):1=作品自愿登记代理委托书 2=权利保证书 3=职务作品创作合同 4=委托创作书 5=作品登记承诺书 6=法人作品声明 7=异地授权书 8=商标代理委托书。save 必填 |
act | 动作 | String(8) | 是 | save | 接口动作:party=检索著作权人/作者;save=新增或更新文书;get=取单条;list=列表检索+分页;del=删除。缺省=list |
5、返回结果
接口统一返回 JSON,
ok=1 表示成功、ok=0 表示失败;鉴权或配置类错误同时返回 HTTP 666。| 字段 | 类型 | 说明 |
|---|---|---|
ok | Int | 1=成功,0=失败 |
msg | String | 结果描述 / 失败原因 |
成功响应示例
{
"ok": 1,
"msg": "已新增",
"id": 12,
"wstype": 1,
"type_name": "作品自愿登记代理委托书",
"bqj": 99,
"bq_name": "中国版权保护中心",
"zhuquanrenstr": "王阿红",
"file_jpg_url": "https:\/\/f.muzhiyun.com\/d1sd1dlijianhua3a8f0c2e1b4d5e6f7a8b9c0d1e2f3.jpg",
"qianzi_url": "",
"shenhe": 0,
"exptime": "2026-12-31"
}ok=1 为成功:save/get 回显记录明细(含 type_name 类型名、bq_name 受理机构名、file_jpg_url 底图预览地址、qianzi_url 签字图预览地址、shenhe 审核状态、exptime 有效期);list 回显 total/page/pagesize/rows(rows 为摘要列表)。ok=0 为失败,msg 给出原因。
失败响应示例
{
"ok": 0,
"msg": "请选择文书类型【wstype】"
}常见失败原因(msg 原文):
- 缺少鉴权参数 「缺少必要的参数【appid、sendtime、sign】请详看开发文档。」
- 签名校验失败 「签名校验失败。」
- 时间戳超时 「时间戳超时,请重新请求。」
- act 不支持 「act 不支持:xxx,可选 party / save / get / list / del」
- 文书类型未传/不存在 「请选择文书类型【wstype】」/「文书类型【wstype】不存在(请传入有效类型 id…)」
- 底图缺失(新增) 「底图【file_jpg】不能为空:请传以 http:// 或 https:// 开头的图片地址」
- 底图传了短串/非法串 「底图【file_jpg】不合法:须为以 http:// 或 https:// 开头的图片地址(不收平台文件短串)」
- 底图非图片/转存失败 「底图【file_jpg】不是有效的图片文件(…)」/「底图【file_jpg】转存文件平台失败:…」
- 截止早于起始 「截止日期不能早于起始日期」
- 必填日期缺失 「起始日期为「职务作品创作合同」必填项」/「截止日期为「…」必填项」
- 当事人缺姓名 「著作权人第1项缺少姓名【name】」
- 当事人缺证件号 「著作权人第1项【王阿红】缺少证件号码【idcard】」
- 当事人匹配不到用户 「著作权人第1项【王阿红】在本系统不存在(姓名+证件号未匹配到用户,请核实后重试)」
- 重复组合 「【中国版权保护中心】下该类型 + 该著作权人组合的文书已存在(ID=x),请直接编辑那一条」
- 记录不存在 「记录不存在或不属于本系统」
- 系统未匹配 「当前域名未匹配到有效系统(systemid=x),无法维护文书配置」
- 余额不足 「您的余额不足,请充值后再调用」
- 缺少鉴权参数 「缺少必要的参数【appid、sendtime、sign】请详看开发文档。」
- 签名校验失败 「签名校验失败。」
- 时间戳超时 「时间戳超时,请重新请求。」
- act 不支持 「act 不支持:xxx,可选 party / save / get / list / del」
- 文书类型未传/不存在 「请选择文书类型【wstype】」/「文书类型【wstype】不存在(请传入有效类型 id…)」
- 底图缺失(新增) 「底图【file_jpg】不能为空:请传以 http:// 或 https:// 开头的图片地址」
- 底图传了短串/非法串 「底图【file_jpg】不合法:须为以 http:// 或 https:// 开头的图片地址(不收平台文件短串)」
- 底图非图片/转存失败 「底图【file_jpg】不是有效的图片文件(…)」/「底图【file_jpg】转存文件平台失败:…」
- 截止早于起始 「截止日期不能早于起始日期」
- 必填日期缺失 「起始日期为「职务作品创作合同」必填项」/「截止日期为「…」必填项」
- 当事人缺姓名 「著作权人第1项缺少姓名【name】」
- 当事人缺证件号 「著作权人第1项【王阿红】缺少证件号码【idcard】」
- 当事人匹配不到用户 「著作权人第1项【王阿红】在本系统不存在(姓名+证件号未匹配到用户,请核实后重试)」
- 重复组合 「【中国版权保护中心】下该类型 + 该著作权人组合的文书已存在(ID=x),请直接编辑那一条」
- 记录不存在 「记录不存在或不属于本系统」
- 系统未匹配 「当前域名未匹配到有效系统(systemid=x),无法维护文书配置」
- 余额不足 「您的余额不足,请充值后再调用」
余额不足 / 无可用套餐
{
"ok": 0,
"msg": "余额不足,且无可用套餐,请充值后重试。"
}接口已停用
{
"ok": 0,
"msg": "接口【知产文书配置接口】已停用,暂停调用,请联系管理员。"
}常见错误提示(msg 原文)
缺少必要的参数【appid、sendtime、sign】请详看开发文档。 AppID不存在,请联系产品经理进行业务开通。 sendtime不是10位的数字。 时间戳超时,请重新请求。 签名校验失败。 余额不足,请充值后重试。 接口【XXX】已停用,暂停调用,请联系管理员。
6、调用示例
下面示例自动计算签名(ksort 后 MD5 大写):复制后只需把
你的AppID / 你的AppKey 换成真实凭证即可运行。Python / PHP 为完整可运行版;cURL、JavaScript 展示请求形态。GET 接口请把参数(含 appid/sendtime/sign)拼到 URL 查询串。cURL
curl -X POST "https://quanzhou.muzhiyun.com/api/wenshuset.do" \ -H "Content-Type: application/json" \ -d '{"appid":"你的AppID", "sendtime":"<当前时间戳>", "sign":"<按签名算法计算>", "appid":"muzhiyun","sendtime":"1790784000","id":"12","day002":"2026-12-31","day001":"2026-01-01","text":"{\"xmz\":\"我的作品\",\"day\":\"2026-01-01\"}","zpm":"{\"show\":1,\"size\":22,\"x\":340,\"y\":520}","zzr":"{\"show\":1,\"size\":22,\"x\":120,\"y\":230}","zhengjianhao":"{\"show\":1,\"size\":22,\"x\":120,\"y\":340}","xingming":"{\"show\":1,\"size\":22,\"x\":120,\"y\":300}","qm":"{\"show\":1,\"size\":60,\"x\":300,\"y\":520}","day":"{\"show\":1,\"size\":22,\"x\":120,\"y\":430}","xmz":"{\"show\":1,\"size\":22,\"x\":120,\"y\":280}","qianzi":"https:\/\/x.com\/qz.png","file_jpg":"https:\/\/x.com\/bg.png","exptime":"2026-12-31","qiyong":"1","zuozhe_arr":"[{\"name\":\"李明\",\"idcard\":\"110101199001015678\"}]","zhuquanren_arr":"[{\"name\":\"王阿红\",\"idcard\":\"110101199001011234\"}]","bqj":"99","wstype":"1","act":"save" }'
PHP
<?php $appId = "你的AppID"; // 没有则填 muzhiyun $appKey = "你的AppKey"; $url = "https://quanzhou.muzhiyun.com/api/wenshuset.do"; $params = [ 'appid' => 'muzhiyun', 'sendtime' => '1790784000', 'id' => '12', 'day002' => '2026-12-31', 'day001' => '2026-01-01', 'text' => '{"xmz":"我的作品","day":"2026-01-01"}', 'zpm' => '{"show":1,"size":22,"x":340,"y":520}', 'zzr' => '{"show":1,"size":22,"x":120,"y":230}', 'zhengjianhao' => '{"show":1,"size":22,"x":120,"y":340}', 'xingming' => '{"show":1,"size":22,"x":120,"y":300}', 'qm' => '{"show":1,"size":60,"x":300,"y":520}', 'day' => '{"show":1,"size":22,"x":120,"y":430}', 'xmz' => '{"show":1,"size":22,"x":120,"y":280}', 'qianzi' => 'https://x.com/qz.png', 'file_jpg' => 'https://x.com/bg.png', 'exptime' => '2026-12-31', 'qiyong' => '1', 'zuozhe_arr' => '[{"name":"李明","idcard":"110101199001015678"}]', 'zhuquanren_arr' => '[{"name":"王阿红","idcard":"110101199001011234"}]', 'bqj' => '99', 'wstype' => '1', 'act' => 'save', ]; // 以下三项由代码自动补,无需手填 $params["appid"] = $appId; $params["sendtime"] = (string)time(); ksort($params); $src = ''; foreach($params as $k=>$v) $src .= $k.'='.$v.'&'; $src .= 'key='.$appKey; $params["sign"] = strtoupper(md5($src)); $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_POST => true, CURLOPT_HTTPHEADER => ['Content-Type: application/json'], CURLOPT_POSTFIELDS => json_encode($params, JSON_UNESCAPED_UNICODE), CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, ]); $resp = curl_exec($ch); curl_close($ch); echo $resp;
Python
import time, hashlib, json, urllib.request APP_ID = "你的AppID" # 没有则填 muzhiyun APP_KEY = "你的AppKey" URL = "https://quanzhou.muzhiyun.com/api/wenshuset.do" params = { "appid": "muzhiyun", "sendtime": "1790784000", "id": "12", "day002": "2026-12-31", "day001": "2026-01-01", "text": "{"xmz":"我的作品","day":"2026-01-01"}", "zpm": "{"show":1,"size":22,"x":340,"y":520}", "zzr": "{"show":1,"size":22,"x":120,"y":230}", "zhengjianhao": "{"show":1,"size":22,"x":120,"y":340}", "xingming": "{"show":1,"size":22,"x":120,"y":300}", "qm": "{"show":1,"size":60,"x":300,"y":520}", "day": "{"show":1,"size":22,"x":120,"y":430}", "xmz": "{"show":1,"size":22,"x":120,"y":280}", "qianzi": "https://x.com/qz.png", "file_jpg": "https://x.com/bg.png", "exptime": "2026-12-31", "qiyong": "1", "zuozhe_arr": "[{"name":"李明","idcard":"110101199001015678"}]", "zhuquanren_arr": "[{"name":"王阿红","idcard":"110101199001011234"}]", "bqj": "99", "wstype": "1", "act": "save", } params["appid"] = APP_ID params["sendtime"] = str(int(time.time())) params = dict(sorted(params.items())) # 参数名升序 sign_src = "&".join(f"{k}={v}" for k, v in params.items()) + "&key=" + APP_KEY params["sign"] = hashlib.md5(sign_src.encode("utf-8")).hexdigest().upper() req = urllib.request.Request( URL, data=json.dumps(params).encode("utf-8"), headers={"Content-Type": "application/json"}, method="POST", ) print(urllib.request.urlopen(req, timeout=30).read().decode("utf-8"))
JavaScript
const url = "https://quanzhou.muzhiyun.com/api/wenshuset.do"; const params = { 'appid': 'muzhiyun', 'sendtime': '1790784000', 'id': '12', 'day002': '2026-12-31', 'day001': '2026-01-01', 'text': '{"xmz":"我的作品","day":"2026-01-01"}', 'zpm': '{"show":1,"size":22,"x":340,"y":520}', 'zzr': '{"show":1,"size":22,"x":120,"y":230}', 'zhengjianhao': '{"show":1,"size":22,"x":120,"y":340}', 'xingming': '{"show":1,"size":22,"x":120,"y":300}', 'qm': '{"show":1,"size":60,"x":300,"y":520}', 'day': '{"show":1,"size":22,"x":120,"y":430}', 'xmz': '{"show":1,"size":22,"x":120,"y":280}', 'qianzi': 'https://x.com/qz.png', 'file_jpg': 'https://x.com/bg.png', 'exptime': '2026-12-31', 'qiyong': '1', 'zuozhe_arr': '[{"name":"李明","idcard":"110101199001015678"}]', 'zhuquanren_arr': '[{"name":"王阿红","idcard":"110101199001011234"}]', 'bqj': '99', 'wstype': '1', 'act': 'save', appid: "你的AppID", sendtime: String(Math.floor(Date.now()/1000)), // sign: 按上文「签名算法」在前端算 md5(ksort(k=v&…)&key=AppKey) 后填入 }; fetch(url, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(params), }).then(r => r.json()).then(console.log);
7、注意事项
1、必传(鉴权):appid、sendtime、sign,外加动作参数 act(party/save/get/list/del,缺省=list)。
2、act=save(核心·新增/编辑):必填 wstype(文书类型 id,见字典 wenshu_type,如 1=作品自愿登记代理委托书、2=权利保证书、3=职务作品创作合同…共 8 种);新增时底图 file_jpg 必填,清一色传【http(s) 图片 URL】(不收平台文件短串;URL 由服务端下载→内容核验→转存文件平台→内部落库短串)。著作权人 zhuquanren_arr / 作者 zuozhe_arr 传 JSON 数组 [{"name":"王阿红","idcard":"110..."}](姓名+证件号码)。可选:bqj(受理机构 id,见字典 shoulidanwei)、qiyong(1启用/0停用,默认1)、exptime(有效期至 YYYY-MM-DD,留空=长期有效)、排版 7 个标签参数 xmz/day/qm/xingming/zhengjianhao/zzr/zpm(每个 = {"show":0/1,"size":字号,"x":横坐标,"y":纵坐标},未传回落默认)、text(各标签填空文字 JSON)、day001/day002(合同起止日期,按文书类型可能必填)、id(传则更新该记录)。
3、著作权人/作者:每项为 {name 姓名, idcard 证件号码},两项均必填;服务端按姓名+证件号在本系统 mzy_user 反查 user id 后存储(外部不传、也不感知内部 user id),匹配不到会报错。save 为全字段替换:未传的 text 会重置为空;更新时若未传 file_jpg / qianzi 则保留库中旧值(防止误清空底图/签字)。
4、唯一性:同一【系统 + 受理机构 + 文书类型 + 著作权人组合】只允许一份,重复会提示直接编辑那条。
5、有效期:截止日期 day002 即有效期至;只填 exptime 会回填 day002。列表按 exptime 做过期预警。
6、审核:任何保存一律回落 shenhe=0(待审),与后台规则一致——配置一变更须重新走审核;本接口不暴露审核动作。姓名/证件号「自动取值标签」不被本接口改写,以你在 text 里传入的为准。
7、act=get / list / del:按 id(get/del)或筛选条件(list:kw 关键字、wstype、bqj、shenhe、qiyong、page、pagesize)操作,均限定在本系统范围内。
8、act=party:传 kw 关键字,返回本系统 mzy_user 中名称/账号/证件号/手机匹配的用户(含 id、名称、证件号、手机),便于核对用户登记信息、确认姓名+证件号能匹配上再调 save。
9、返回 ok=1 表示成功(save/get 回显记录、list 回显 rows 与分页),ok=0 表示失败、msg 给出原因。
2、act=save(核心·新增/编辑):必填 wstype(文书类型 id,见字典 wenshu_type,如 1=作品自愿登记代理委托书、2=权利保证书、3=职务作品创作合同…共 8 种);新增时底图 file_jpg 必填,清一色传【http(s) 图片 URL】(不收平台文件短串;URL 由服务端下载→内容核验→转存文件平台→内部落库短串)。著作权人 zhuquanren_arr / 作者 zuozhe_arr 传 JSON 数组 [{"name":"王阿红","idcard":"110..."}](姓名+证件号码)。可选:bqj(受理机构 id,见字典 shoulidanwei)、qiyong(1启用/0停用,默认1)、exptime(有效期至 YYYY-MM-DD,留空=长期有效)、排版 7 个标签参数 xmz/day/qm/xingming/zhengjianhao/zzr/zpm(每个 = {"show":0/1,"size":字号,"x":横坐标,"y":纵坐标},未传回落默认)、text(各标签填空文字 JSON)、day001/day002(合同起止日期,按文书类型可能必填)、id(传则更新该记录)。
3、著作权人/作者:每项为 {name 姓名, idcard 证件号码},两项均必填;服务端按姓名+证件号在本系统 mzy_user 反查 user id 后存储(外部不传、也不感知内部 user id),匹配不到会报错。save 为全字段替换:未传的 text 会重置为空;更新时若未传 file_jpg / qianzi 则保留库中旧值(防止误清空底图/签字)。
4、唯一性:同一【系统 + 受理机构 + 文书类型 + 著作权人组合】只允许一份,重复会提示直接编辑那条。
5、有效期:截止日期 day002 即有效期至;只填 exptime 会回填 day002。列表按 exptime 做过期预警。
6、审核:任何保存一律回落 shenhe=0(待审),与后台规则一致——配置一变更须重新走审核;本接口不暴露审核动作。姓名/证件号「自动取值标签」不被本接口改写,以你在 text 里传入的为准。
7、act=get / list / del:按 id(get/del)或筛选条件(list:kw 关键字、wstype、bqj、shenhe、qiyong、page、pagesize)操作,均限定在本系统范围内。
8、act=party:传 kw 关键字,返回本系统 mzy_user 中名称/账号/证件号/手机匹配的用户(含 id、名称、证件号、手机),便于核对用户登记信息、确认姓名+证件号能匹配上再调 save。
9、返回 ok=1 表示成功(save/get 回显记录、list 回显 rows 与分页),ok=0 表示失败、msg 给出原因。
拇指云