短网址服务接入

  • 接口通用信息

    生产地址:https://openapi.wdqz.cc/api/
    请求方式:POST
    请求头信息:

    参数 格式 举例
    Authorization xxx.xxx.xxx eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvd3d3LnVyaS53aWtpXC8iLCJhdWQiOiJodHRwczpcL1wvd3d3LnVyaS53aWtpXC8iLCJpYXQiOjE2NzMzMzk2ODIsIm5iZiI6MTY3MzMzOTY4MiwiZXhwIjoxNjczMzQ2ODgyLCJkYXRhIjp7ImFwcF9pZCI6IjIwMjMwMTAxMDAwMTAwMDEifX0.nqrq_HJawI7RnGJ0A2P0qi7zagl-G0wgXydtS1RZS8E

    Authorization 的生成规则:JWT 。


    什么是 JWT?

    JWT 全称是:Json Web Token. 是一个开放的行业标准 RFC 7519。JWT 传输的信息可以被验证和信任,因为它经过了数字签名。
    JWT 的更多详细信息,可自行网络搜索。

    JWT token的生成,需要一个秘钥,这个秘钥需要在求知开放平台创建。
    创建路径:应用管理->创建应用->填写你自己的秘钥

    下面是 PHP 开发者可以直接使用的插件:
    https://github.com/firebase/php-jwt

    若无法下载,可以在这里直接下载:
    php.jwt.zip

    JAVA JWT:
    https://github.com/jwtk/jjwt

    PHP 实例代码:

      /**
       * jwt 加密
       *
       * @param array $data 数据体
       * @param string $jwtKey jwt秘钥
       * @param int $expire jwt-token过期时间
       * @return mixed 加密后的jwt-token
       */
      private static function jwtEncode($data = [], $jwtKey = '')
      {
          $payload = array(
              'iss' => 'https://open.wdqz.cc/', // 固定值
              'aud' => 'https://open.wdqz.cc/', // 固定值
              'iat' => time(),    // 签发时间
              'nbf' => time(),     // 在此时间之前,该jwt都是不可用
              'exp' => time() + 7200,     // jwt 有效期 2 小时
              'data' => $data,    // 数据体, 
          );
          return JWT::encode($payload, $jwtKey);
      }
      // 调用(使用你自己的 appId 和 key)
      $Authorization = jwtEncode(['app_id' => '2023***********1'], '262bbc*********************792b9');
  • 创建短网址

    接口:link/link-create
    请求参数列表:

    字段名称 字段类型 长度 是否必填 示例 说明
    link string 1024 https://open.wdqz.cc/ 原始链接
    cost_type int 1 1 扣费方式(1:按时间;2:按次数)
    expire_time int 11 当 cost_type=1 时必填 2592000 短网址有效期(秒)
    可选值参见:有效期列表
    expire_times int 11 当 cost_type=2 时必填 20 短网址有效次数
    可选值参见:次数列表

    有效期&次数列表:

    按时间: 按次数:
    时间 数值 次数 数值
    30天 2592000 20次 20
    90天 7776000 2000次 2000
    180天 15552000 2万次 20000
    365天 31536000 10万次 100000
    730天 63072000 30万次 300000
    3650天 315360000 3百万次 3000000

    curl 请求实例:

      curl -i -k -X POST 'https://openapi.wdqz.cc/api/link/link-create' \
      -H 'Content-Type:application/json;charset=UTF-8' \
      -H 'Authorization: 生成的JwtToken' \
      -d '{"link": "https://open.wdqz.cc/", "cost_type": 2, "expire_tims": 20}'

    成功返回值:

      {
          "code": 10000,
          "msg": "success",
          "resultObject": {
              "slink": "P44y1K",
              "host": "https://wdqz.cc/"
          }
      }

    错误返回值:

      {
          "code": 30000,
          "msg": "错误的扣费方式",
          "resultObject": []
      }
  • 短网址列表查询

    接口:link/link-list
    缓存时间:1分钟
    请求参数列表:

    字段名称 字段类型 长度 是否必填 示例 说明
    link string 1024 https://open.wdqz.cc/ 原始链接
    (精准匹配)
    slink string 6 L4e54G 短网址
    (精准匹配)
    name string 32 求知开放平台 短网址名称
    (模糊匹配)
    page int 11 1 请求页数
    pagesize int 11 10 每页展示数据条数
    (最多50条)

    curl 请求实例:

      curl -i -k -X POST 'https://openapi.wdqz.cc/api/link/link-list' \
      -H 'Content-Type:application/json;charset=UTF-8' \
      -H 'Authorization: 生成的JwtToken' \

    成功返回值:

      {
      "code": 10000,
      "msg": "success",
      "resultObject": {
          "count": "2",
          "host": "https://wdqz.cc/",
          "list": [
              {
                  "name": "百度",    // 短网址名称
                  "link": "https://baidu.com",    // 原始链接
                  "slink": "L4e54G",    // 短网址
                  "visit_cnt": "7",    // 已访问次数
                  "create_time": "2023-01-10 16:39:27",    // 创建时间
                  "expire_time_to": "2031-04-18 23:16:21",    // 过期时间
              },
              {
                  "name": "求知开放平台",
                  "link": "https://open.wdqz.cc",
                  "slink": "fHifTO",
                  "visit_cnt": "0",
                  "create_time": "2023-01-20 23:16:21",
                  "expire_time_to": "2031-04-18 23:16:21",
              }
          ]
      }
    }

    错误返回值:

      {
          "code": 101401,
          "msg": "用户身份验证失败",
          "resultObject": []
      }
  • 访问统计

    接口:link/link-stat
    缓存时间:1分钟
    请求参数列表:

    字段名称 字段类型 长度 是否必填 示例 说明
    link string 1024
    (link和slink二者必填其一)
    https://www.baidu.com/ 原始链接
    (精准匹配)
    slink string 6
    (link和slink二者必填其一)
    L4e54G 短网址
    (精准匹配)
    equ string 32 手机 设备(模糊匹配)
    sys string 64 OSX 系统(模糊匹配)
    browser string 32 chrome 浏览器(模糊匹配)
    ip string 16 192.168.1.1 IP(模糊匹配)
    province string 16 河北省 省份(模糊匹配)
    city string 32 北京市 城市(模糊匹配)
    district string 32 海淀区 区县(模糊匹配)
    from_time string 32 2023-01-01 12:00:00 查询范围,起始时间(固定格式)
    to_time string 32 2023-01-02 12:00:00 查询范围,结束时间(固定格式)
    page int 11 1 请求页数
    pagesize int 11 10 每页展示数据条数
    (最多50条)

    curl 请求实例:

      curl -i -k -X POST 'https://openapi.wdqz.cc/api/link/link-stat' \
      -H 'Content-Type:application/json;charset=UTF-8' \
      -H 'Authorization: 生成的JwtToken' \

    成功返回值:

      {
      "code": 10000,
      "msg": "success",
      "resultObject": {
          "count": "2",
          "list": [
              {
                  "slink": "OafP0S",
                  "link": "https://www.qq.com",
                  "ip": "222.130.32.92",
                  "equ": "电脑",
                  "sys": "OSX:10_15_7",
                  "browser": "Chrome-简体中文",
                  "province": "北京市",
                  "city": "北京市",
                  "district": "密云区",
                  "ad_code": "",
                  "referer": "https://open.wdqz.cc/",
                  "visit_time": "2023-02-04 00:03",
                  "longitude": "116.831989",
                  "latitude": "40.408094",
                  "isp": "China Unicom",
                  "zip_code": "101500",
                  "continent": "亚洲",
                  "country": "中国"
              },
              {
                  "slink": "aL4y9S",
                  "link": "https://www.qq.com",
                  "ip": "222.130.32.92",
                  "equ": "电脑",
                  "sys": "OSX:10_15_7",
                  "browser": "Chrome-简体中文",
                  "province": "北京市",
                  "city": "北京市",
                  "district": "密云区",
                  "ad_code": "",
                  "referer": "https://open.wdqz.cc/",
                  "visit_time": "2023-02-04 00:01",
                  "longitude": "116.831989",
                  "latitude": "40.408094",
                  "isp": "China Unicom",
                  "zip_code": "101500",
                  "continent": "亚洲",
                  "country": "中国"
              }
          ]
      }
    }

    错误返回值:

      {
          "code": 30000,
          "msg": "此短网址不存在",
          "resultObject": []
      }
  • 错误码列表

    10000; // 成功
    30000; // 通用业务错误
    30002; // 请求参数异常(例如:数据体不是json格式)
    101401; // Jwt-Token 过期失效
    101404; // 请求接口未找到
    101405; // 请求方式错误(例如:使用GET请求)
    101500; // 系统错误
  • 其他注意事项

    本文档以 PHP 为例展示了 Token 的生成规则。
    JWT 各种语言都有成熟的封装好的类库。
    可以在 GitHub 上搜索 star 较多的类库使用。


— The End.

作者:admin  创建时间:2023-01-22 00:35
最后编辑:admin  更新时间:2025-02-06 17:27