API接口文档 V5.5
接口说明

本平台提供完整的API接口服务,支持稿件发布、状态查询、资源获取等功能。

所有接口均使用POST方式请求,数据采用AES-256-CBC加密传输,返回JSON格式数据。

您需要登录后才能查看和使用API接口。
接口快速导航
接口使用说明
  • 下游主动接口:您的系统调用我们的API
  • 上游通知接口:您需要开发接口供我们调用
  • 所有接口数据都经过加密传输
  • 请确保回调接口能够正确处理通知
下游主动请求接口(您的系统调用我们)

以下接口由您的系统主动调用我们的API,用于获取资源、发布稿件等操作。

1. 获取资源接口 下游主动请求
接口说明

获取媒体资源列表,支持按媒体类型、ID筛选,支持分页。

请求地址
POST https://open-rw.jzguai.com/api/v1/resource
请求参数
参数 类型 必填 说明 示例
model_id int 媒体类型ID 1(网络媒体)
resource_id int 上游媒体ID,不填则查询所有 12786
limit int 每页条数,默认300,最大1000 300
page int 当前页码 1
时间限制: 每天9:00-12:00、13:00-19:00禁止访问此接口
媒体类型对照表
model_id 类型名称 说明
1网络媒体门户网站、新闻网站等
2自媒体今日头条、百家号等
3微信微信公众号
4微博新浪微博
5贴吧百度贴吧
6论坛各大论坛
7问答百度知道、知乎等
8友链友情链接
9代写文案代写服务
10小红书小红书笔记推广
11百度百科百科词条创建
12品牌宝品牌宝推广
13短视频抖音、快手等短视频平台
请求示例(PHP)
<?php
// 配置信息
$apiUrl = "https://open-rw.jzguai.com/api/v1/resource";
$appKey = "YOUR_APP_KEY";

// 请求数据
$requestData = [
    "model_id" => 1,
    "limit" => 300,
    "page" => 1
];

// 创建加密实例
require_once 'Encrypt.class.php';
$encrypt = new Encrypt();

// 加密请求
$postData = $encrypt->encrypt($requestData, $appKey);

// 发送请求
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($httpCode != 200) {
    die("请求失败,HTTP状态码: " . $httpCode);
}

// 解析响应
$responseData = json_decode($response, true);
if (!$responseData) {
    die("响应数据解析失败");
}

// 解密响应
try {
    $decryptedData = $encrypt->validateRequest($responseData);
    print_r($decryptedData);
} catch (Exception $e) {
    die("响应解密失败: " . $e->getMessage());
}
?>
响应示例
{
  "errorCode": "",
  "message": "查询成功",
  "data": {
    "current_page": 1,
    "data": [
        {
            "id": 67750, // 发布时候要用的,上游媒体ID【resource_id】
            "model_id": 1, // 发布时候要用的,上游媒体类型ID 和 上上游媒体类型ID
            "name": "长江网(科技热线)",
            "price_assign": "20.00",
            "price_proxy": "20.00",
            "status": 1,
            "source_id": 142114, // 发布时候要用的,上上游媒体ID 【out_resource_id】
            "category": "IT科技",
            "platform": "其他门户",
            "region": "湖北",
            "created_at": "2025-12-29 17:50:30",
            "updated_at": "2025-12-30 00:19:41",
            "sync_time": "2025-12-30 00:19:41",
            "price_original_type": "基础价格",
            "change_count": 0,
            "last_change_summary": "",
            "last_change_time": "",
            "price_original": "20.00",
            "meitibeizhu": null,
            "celue": 0,
            "sort": 0,
            "is_press": 0,
            "is_stop": 0,
            "img_path": null,
            "pindaoleixing": "IT科技",
            "zonghemenhu": "其他门户",
            "quyu": "湖北",
            "meitianli": "https:\/\/h5.jp.cjn.cn\/#\/h5\/news?informationId=5127512&sourceType=0&type=android&isDetail=0",
            "lianjieleixing": "不可带网址",
            "shouluxiaoguo": "不包网页收录",
            "weekend_active": 1,
            "meitiquanzhong": "3",
            "chugaosudu": "",
            "tebiehangye": null,
            "jiegaoshijian": "24:00",
            "baikelaiyuan": "否",
            "wanshangkechu": "否",
            "kedaishipin": "否",
            "jierikefa": "否",
            "baidu_include": 0,
            "is_beian": 0,
            "domain_created_at": null,
            "bd_ip_rank": "",
            "anlijietu": null,
            "no_disclaimer": 0,
            "can_sign": 0,
            "wechat_open": 0,
            "has_read_count": 0,
            "avg_delivery_speed": "",
            "publish_rate": "0.00",
            "is_tag": "",
            "is_journal": 0,
            "is_haiwai": 0,
            "guojiadiqu": "",
            "yuyanfenlei": "",
            "tupianfeiyong": "",
            "fanyixuanxiang": "",
            "hw_fabusudu": "",
            "ai_include": "",
            "operate_out_uid": 0,
            "remark": "",
            "settle_cycle": 0,
            "contact": "",
            "contact_tel": "",
            "stop_reason": "",
            "site_type": "",
            "policy_icon": "",
            "price": "20.00"
        }
    ],
    "total": 5144
  },
  "t": 1563243867
}
2. 文章发布接口 下游主动请求
接口说明

提交稿件进行发布,系统会自动计算费用并从账户余额扣除。

流程说明: 提交稿件 → 验证余额 → 调用上游 → 创建订单 → 扣除余额
请求地址
POST https://open-rw.jzguai.com/api/v1/publish
请求参数
参数 类型 必填 说明 示例
model_id int 上游媒体类型ID 1
resource_id int 上游媒体ID 12786
customer_order_id string 上游订单ID(必须唯一) ORDER20231215001
customer_batch_id string 同customer_order_id【上上游订单ID(必须唯一】 ORDER20231215001
out_model_id int 上上游媒体类型ID 1
out_resource_id int 上上游媒体ID 12222
resource_price float 上上游媒体分配价格,填写则校验 10.00
price_type int 特殊 价格类型(微信、微博、短视频需要) 0
sale_id string 销售ID,默认"0" "0"
sale_name string 销售名称,默认空 ""
prop JSON 稿件内容,JSON格式 {"biaoti":"标题","neirong":"内容"}
prop参数详细说明
字段 必填 说明
biaoti 文章标题/友链关键词/词条名(营销宝类型填"营销宝")
neirong 文章内容(HTML格式)
laiyuan 来源链接/参考文章/百科官网链接
miaoshu 备注说明
leixing 类型,默认1
tuiguang 代写时必填 推广对象(代写字段)
xuanchuan 代写时必填 宣传要点(代写字段)
xinwenlianjie 百科时必填 新闻链接(百科字段),至少2条,分号;分隔
yingyezhizhao 百科时必填 营业执照(百科字段),图片地址
qiyelogo 百科时必填 企业LOGO(百科字段),图片地址
fengmian 微信时必填 封面图片(微信字段),图片地址
yuanwenlianjie 微信时必填 原文链接(微信字段)
price_type参数说明
媒体类型 price_type 说明
微信 0 头条价格
微信 2 普条价格
微博 0 直发价格
微博 1 任务价格
微博 2 转发价格
短视频 0 直发视频价格
短视频 2 原创视频价格
请求示例(PHP)
<?php
// 配置信息
$apiUrl = "https://open-rw.jzguai.com/api/v1/publish";
$appKey = "YOUR_APP_KEY";

// 构建请求数据
$requestData = [
    "model_id" => 1,
    "resource_id" => 12786,
    "customer_order_id" => "ORDER" . time(),
    "customer_batch_id" => "ORDER" . time(),
    "out_model_id" => 1,
    "out_resource_id" => 12222,
    "price_type" => 0,
    "sale_id" => "0",
    "sale_name" => "",
    "prop" => json_encode([
        "biaoti" => "测试文章标题",
        "neirong" => "<p>测试文章内容</p><p>第二段内容</p>",
        "laiyuan" => "http://example.com",
        "miaoshu" => "测试备注信息",
        "leixing" => 1
    ], JSON_UNESCAPED_UNICODE)
];

// 创建加密实例
require_once 'Encrypt.class.php';
$encrypt = new Encrypt();

// 加密请求
$postData = $encrypt->encrypt($requestData, $appKey);

// 发送请求
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$response = curl_exec($ch);
curl_close($ch);

// 处理响应
$responseData = json_decode($response, true);
if ($responseData) {
    // 检查是否有错误
    if (!empty($responseData['errorCode'])) {
        echo "发布失败: " . $responseData['message'];
    } else {
        echo "发布成功,订单ID: ";
        print_r($responseData['data']);
    }
}
?>
响应示例
{
  "data": [
    {
      "resource_order_id": "120",
      "model_id": "1",
      "resource_id": "12786",
      "resource_order_num": "MP20231215123456"
    }
  ],
  "errorCode": "",
  "message": "",
  "t": 1494227037
}
3. 稿件状态查询接口 下游主动请求
接口说明

查询稿件的发布状态,包括回执链接、退稿原因等信息。

请求地址
POST https://open-rw.jzguai.com/api/v1/status
请求参数
参数 类型 必填 说明
model_id int 资源类型ID
order_id string 下游订单ID(即发布接口的customer_order_id)
响应示例
{
  "data": "http://www.example.com/news/123.html",
  "errorCode": "",
  "message": "稿件状态:已发布",
  "status": 1002,
  "synced": false,  // 可选:告知客户端是否进行了同步
  "t": 1494227037
}
状态码说明
状态码 说明
1011 待安排
1001 已安排
1002 已发布(data字段为回执链接)
1004 已退稿(data字段为退稿原因)
1005 退单申请
1006 改稿中
4. 余额查询接口 下游主动请求
接口说明

查询账户余额、累计充值、累计消费信息,支持时间段查询。

请求地址
POST https://open-rw.jzguai.com/api/v1/wallet
请求参数
参数 类型 必填 说明
start string 开始时间,格式:YYYY-MM-DD
end string 结束时间,格式:YYYY-MM-DD
响应示例
{
  "data": {
    "remaining": "5200.00",
    "recharge": "5200.00",
    "consume": 0,
    "period_consume": "100.00",
    "period_recharge": "500.00"
  },
  "errorCode": "",
  "message": "",
  "t": 1494227037
}
字段说明:
  • remaining:当前账户余额
  • recharge:累计充值总额
  • consume:累计消费总额
  • period_consume:时间段内消费(需传start和end参数)
  • period_recharge:时间段内充值(需传start和end参数)
5. 退稿申请接口 下游主动请求
接口说明

对已发布的稿件申请退稿退款。

注意: 只能对以下状态的订单申请退稿:待安排(1011)、已安排(1001)、已发布(1002)、改稿中(1006)
请求地址
POST https://open-rw.jzguai.com/api/v1/refund
请求参数
参数 类型 必填 说明
customer_order_id string 下游订单ID
customer_model_id int 下游媒体类型ID
model_id int 上游媒体类型ID
back_reason string 退稿理由
响应示例
{
  "data": [],
  "errorCode": "",
  "message": "退稿申请已提交",
  "t": 1494227037
}
6. 改稿接口 下游主动请求
接口说明

提交改稿申请、改稿留言或处理改稿结果。

请求地址
POST https://open-rw.jzguai.com/api/v1/rewrite
请求参数
参数 类型 必填 说明
model_id int 资源类型ID
order_id string 下游订单ID
message string 留言内容
type int 类型:0-发起改稿,1-同意改稿,2-拒绝改稿
响应示例
{
  "data": "success",
  "errorCode": "",
  "message": "操作成功",
  "t": 1494227037
}
上游通知接口(我们调用您的系统)

以下接口需要您开发相应的接收接口,我们会主动POST通知数据到您配置的回调地址。

重要: 您需要在"设置 → 回调接口"页面配置这些接口的回调地址,否则无法接收通知。
1. 资源变更通知接口 上游主动通知
接口说明

当媒体资源的价格、状态等信息发生变化时,我们会通知您。

请求地址
您配置的回调地址
请求参数
参数 类型 必填 说明
id int 上游媒体资源ID
model_id int 上游媒体类型ID
price_assign float 上游分配价格(成本价)
status int 状态:1-正常,0-暂停,-1-删除
name string 资源名称
其他属性 mixed 具体媒体类型的其他字段
处理示例(PHP)
<?php
// 接收上游资源变更通知
header('Content-Type: application/json; charset=utf-8');

// 获取POST数据
$postData = $_POST;

// 验证必要参数
if (!isset($postData['response']) || !isset($postData['sign']) || !isset($postData['app_key'])) {
    echo json_encode([
        'data' => '',
        'errorCode' => 'ERROR00015',
        'message' => '缺少必要参数',
        't' => time()
    ]);
    exit;
}

// 获取您的App Key(从数据库或配置中获取)
$appKey = 'YOUR_APP_KEY';

// 验证签名
$sign = md5($postData['response']);
if ($sign !== $postData['sign']) {
    echo json_encode([
        'data' => '',
        'errorCode' => 'ERROR00024',
        'message' => '签名验证失败',
        't' => time()
    ]);
    exit;
}

// 解密数据
$responseData = json_decode(base64_decode($postData['response']), true);
if (!$responseData || !isset($responseData['iv']) || !isset($responseData['value'])) {
    echo json_encode([
        'data' => '',
        'errorCode' => 'ERROR00015',
        'message' => '数据格式错误',
        't' => time()
    ]);
    exit;
}

$iv = base64_decode($responseData['iv']);
$decrypted = openssl_decrypt(
    $responseData['value'],
    'AES-256-CBC',
    $appKey,
    0,
    $iv
);

if ($decrypted === false) {
    echo json_encode([
        'data' => '',
        'errorCode' => 'ERROR00015',
        'message' => '解密失败',
        't' => time()
    ]);
    exit;
}

// 反序列化数据
$data = unserialize($decrypted);

// 处理资源变更数据
// $data 可能是单条数据或多条数据
if (isset($data[0]) && is_array($data[0])) {
    // 批量更新
    foreach ($data as $resource) {
        processResourceUpdate($resource);
    }
} else {
    // 单条更新
    processResourceUpdate($data);
}

// 返回成功响应
echo json_encode([
    'data' => [],
    'errorCode' => '',
    'message' => '',
    't' => time()
]);

function processResourceUpdate($resource) {
    // 这里处理资源更新逻辑
    // 更新您的数据库中的资源信息
    $resourceId = $resource['id'];
    $modelId = $resource['model_id'];
    $price = $resource['price_assign'];
    $status = $resource['status'];
    $name = $resource['name'];
    
    // 更新数据库...
    // TODO: 实现您的资源更新逻辑
    
    error_log("资源更新: ID={$resourceId}, 类型={$modelId}, 价格={$price}, 状态={$status}, 名称={$name}");
}
?>
响应格式要求
{
  "data": [],
  "errorCode": "",
  "message": "",
  "t": 1494227037
}
2. 稿件进度通知接口 上游主动通知
接口说明

当稿件安排状态发生变化时通知您。

请求参数
参数 类型 必填 说明
customer_model_id int 下游媒体类型ID
customer_order_id string 下游稿件ID
order_progress int 安排进度:0-未安排,1-已安排
响应格式要求
{
  "data": [],
  "errorCode": "",
  "message": "",
  "t": 1494227037
}
3. 稿件回执通知接口 上游主动通知
接口说明

当稿件发布成功,收到回执链接时通知您。

请求参数
参数 类型 必填 说明
customer_model_id int 下游媒体类型ID
customer_order_id string 下游稿件ID
return_info string 回执链接(多个链接用分号;分隔)
return_content string 回执内容
return_file string 回执附件
响应格式要求
{
  "data": {
    "model_id": "1",
    "id": "121"
  },
  "errorCode": "",
  "message": "",
  "t": 1494227037
}
4. 退稿通知接口 上游主动通知
接口说明

退稿申请处理结果通知。

请求参数
参数 类型 必填 说明
refund_reason string 退稿原因
customer_order_id string 下游稿件ID
customer_model_id int 下游媒体类型ID
type int 类型:1-同意退稿,2-拒绝退稿
响应格式要求
{
  "data": "",
  "errorCode": "",
  "message": "",
  "t": 1494227037
}
5. 改稿留言通知接口 上游主动通知
接口说明

收到上游的改稿留言时通知您。

请求参数
参数 类型 必填 说明
model_id int 下游资源类型ID
order_id string 下游稿件ID
resource_id int 上游资源ID
message string 改稿留言内容
响应格式要求
{
  "data": "success",
  "errorCode": "",
  "message": "",
  "t": 1494227037
}
6. 改稿结果通知接口 上游主动通知
接口说明

改稿处理结果通知。

请求参数
参数 类型 必填 说明
model_id int 下游资源类型ID
order_id string 下游稿件ID
resource_id int 上游资源ID
type int 结果:1-同意改稿,2-拒绝改稿
响应格式要求
{
  "data": "success",
  "errorCode": "",
  "message": "",
  "t": 1494227037
}
回调接口开发指南
开发说明

您需要开发能够接收我们通知的回调接口,并在用户设置页面配置回调地址。

开发要点
  • 所有回调数据都经过AES-256-CBC加密
  • 使用您的App Key作为解密密钥
  • 必须在5秒内返回响应
  • 需要验证签名防止伪造请求
  • 建议使用HTTPS协议保证安全
回调接口开发步骤
  1. 创建接收接口文件(如:callback.php)
  2. 实现数据解密和验证逻辑
  3. 根据回调类型处理业务逻辑
  4. 返回标准格式的JSON响应
  5. 在用户设置页面配置回调地址
  6. 使用API测试工具进行测试
安全注意事项
  • 不要将App Key硬编码在代码中
  • 验证请求IP地址(可选)
  • 记录所有回调请求日志
  • 处理重复通知(幂等性)
  • 设置超时和重试机制
错误代码说明
错误代码 说明
ERROR00001接口不存在
ERROR00013app_key异常
ERROR00015请求参数错误
ERROR00020余额不足
ERROR00021媒体资源不存在
ERROR00022订单已存在
ERROR00023IP不在白名单中
ERROR00024签名验证失败
ERROR00025同步时间限制
ERROR00026订单状态不允许此操作
ERROR00027价格不匹配
ERROR00028媒体资源已暂停
ERROR00029重复请求
ERROR00099系统内部错误
常见问题

登录系统后,在"设置 → API设置"页面可以查看您的App Key。如果需要重置API密钥,可以点击"重置API密钥"按钮。

在"设置 → 回调接口"页面,可以为每种通知类型配置回调URL。请确保回调地址能够正确处理POST请求并返回正确的响应格式。

我们提供了API测试工具(api_test.php),您可以使用该工具测试所有API接口。同时也可以在用户设置页面发送测试邮件验证回调接口。

所有接口数据都经过AES-256-CBC加密。您需要使用您的App Key进行解密。具体的加密解密方法可以参考文档中的代码示例,或使用我们提供的Encrypt类。

建议采取以下安全措施:
  1. 设置IP白名单限制访问
  2. 定期更换API密钥
  3. 使用HTTPS协议传输数据
  4. 验证请求签名
  5. 记录所有API调用日志