接口坞
    接口坞
    • 概述
    • 身份认证
    • 枚举接口
      GET
    • 节假日接口
      GET
    • 节假日获取工作日下一天接口
      GET
    • 行政区划接口
      GET
    • 汉字转拼音接口
      GET
    • IPv4归属地-城市级
      GET

    身份认证

    验证方式#

    接口坞有两种身份认证方式,分别为:
    1.
    ApiKey参数认证
    2.
    Signature签名认证
    每种认证方式仅请求的认证方式不同,对请求结果没有影响,可以根据实际需要选择使用。
    💡
    推荐使用ApiKey的方式可简单快速接入。

    ApiKey参数认证#

    ApiKey参数认证方式相对比较简单,仅在请求的参数中以GET方式添加参数api_key即可。ApiKey可以在个人中心:
    image.png
    点我的ApiKey进入ApiKey列表页面添加获取:
    image.png
    可以同时添加多个ApiKey(如在Android和iOS端分别使用KEY1和KEY2,后面Android不用的使用直接将KEY1失效掉就可以了),多个ApiKey的使用量会进行累加,所以请妥善保管ApiKey,请勿在前端页面中使用,如果你怀疑你的ApiKey已经泄漏,请失效重新添加。
    将请求接口时在请求参数中添加api_key即可认证成功(注意观察资源包余量是否充足):
    image.png

    Signature签名认证#

    签名认证是通过使用固定的加密算法生成签名信息,然后在http请求的Header中添加签名信息进行认证。
    在Header中添加的信息为:
    x-sign-id(用户ID)【必须】
    x-sign-key(签名KEY)【必须】
    x-sign-timestamp(秒级时间戳)【必须】
    x-sign-signature(签名内容)【必须】
    x-sign-debug(值为1时为调试签名信息,当签名错误时会返回签名错误信息,正式使用时请移除)
    其中用户ID和签名KEY可以在用户信息页面获取和设置:
    image.png
    其中签名算法为:使用用户KEY当作密钥对用户ID:秒时间戳进行sha256加密返回二进制数据后再进行base64加密

    PHP 签名示例#

    $xSignId = '用户ID';
    $xSignKey = '用户KEY';
    $xSignTimestamp = time();
    $xSignSignature = base64_encode(hash_hmac('sha256', $xSignId.':'.$xSignTimestamp, $xSignKey, true));

    JAVA 签名示例#

    String id = "用户ID";
    String key = "用户KEY";
    long time = System.currentTimeMillis() / 1000;
    String msg = id + ":" + time;
    
    javax.crypto.Mac mac = javax.crypto.Mac.getInstance("HmacSHA256");
    javax.crypto.spec.SecretKeySpec secretKeySpec = new javax.crypto.spec.SecretKeySpec(key.getBytes(java.nio.charset.StandardCharsets.UTF_8), mac.getAlgorithm());
    mac.init(secretKeySpec);
    String signature = java.util.Base64.getEncoder().encodeToString(mac.doFinal(msg.getBytes(java.nio.charset.StandardCharsets.UTF_8)));

    PYTHON 签名示例#

    import hashlib
    import hmac
    import base64
    
    xSignId = "用户ID"
    xSignTimestamp = "?"
    xSignKey = "用户KEY"
    
    message = xSignId + ':' + xSignTimestamp
    key = xSignKey.encode("utf-8")
    message = message.encode("utf-8")
    signature = hmac.new(key, message, digestmod=hashlib.sha256).digest()
    signature = base64.b64encode(signature).decode()
    修改于 2023-06-17 01:48:32
    上一页
    概述
    下一页
    枚举接口
    Built with