PDC
    PDC
    • 上上签开发接口
      • 上上签开发接口
      • 1.0
        • 1.0
        • 商品列表查询
        • 商品详情查询
        • 创建订单
        • 订单支付
        • 提交申请人资料
        • 更新申请人资料
        • 查询订单详情
        • 订单补差价
        • 订单状态变更回调通知
        • 申请人赴馆时间更新
        • 查询国家使馆信息
        • 账单获取接口
        • 配置获取
        • 订单快递邮寄资料信息更新
        • 商品价格查询
        • 申请人发起重新审核
        • 订单回寄地址更新
        • 获取该商品最早可出行日期
        • 更新订单生效日期
      • 2.0
        • ReadMe
        • 2.0
        • 商品列表查询
        • 商品详情查询
        • 商品价格查询
        • 商品状态变更回调通知
        • 创建订单
        • 订单支付
        • 查询订单详情
        • 订单补差价
        • 上传文件
        • 申请人护照信息OCR识别
        • 申请人证件照制作
        • 查询申请人申请表url
        • 订单退款
        • 订单快递邮寄资料信息更新
        • 订单状态变更回调通知
        • 资料变更回调通知接口说明
        • 申请人赴馆时间更新
        • 查询国家使馆信息
        • 账单获取接口
        • 配置获取
        • 订单回寄地址更新
        • 申请人身份证信息OCR识别
        • 申请人资料提交(完全匹配)
        • 申请人资料重新提交
        • 申请人发起重新审核
        • 获取该商品最早可出行日期
        • 更新订单生效日期

    上上签开发接口

    一、鉴权#

    每个调用方都会得到一个appid、access_key、secret_key,请求时,将:Date、X-Appid、Authorization放到请求头中,其中:

    1、Date/X-Date#

    报文创建的日期和时间( ,而不是本地时间),例如:Date: Wed, 21 Oct 2022 07:28:00 GMT。这个时间上下误差不能超过5分钟,否则会报错。

    2、X-Appid#

    我方给的appid

    3、Authorization#

    将access_key、appid、date三个字符串拼接起来,中间以\n分割,例如:
    string s = access_key + '\n' + appid + '\n' + date
    然后将该字符串做hmac_sha1,得到的结果做base64,
    string t = base64(hmac_sha1(secret_key, s)),
    最后,Authorization的值如下:
    string Authorization = "Basic " + t

    4、示例代码#

    Postman#

    var date = new Date()
    var appid = '4Uhl54Ul0huZLJVt';
    var secret_key  = '4is02Vs4D6XGN2Xuf60gnmK7lAa1zvTa';
    var gmt_date = date.toUTCString();
    var access_key   = 'lXnvqzBFbA9Y3PQ2 ';
    var salt = access_key+'\n'+appid+'\n'+gmt_date;
    console.log(salt)
    var sign = CryptoJS.HmacSHA1(salt,secret_key);
    var auth = CryptoJS.enc.Base64.stringify(sign);
    console.log(auth);
    pm.environment.set('appid', appid);
    pm.environment.set('sign',"Basic "+ auth);
    pm.environment.set('gmt', gmt_date);

    Java#

    Python#

       local_time = datetime.datetime.now()
       utc_time = local_time.astimezone(datetime.timezone.utc)
       gmt_str = utc_time.strftime('%a, %d %b %Y %H:%M:%S GMT')
       app_id = "uNL9w1j4wbk_60QB"
       secret_key = "sPLbrVw8auNSBlCOPTlyNCA7T9E813Qb"
       access_key = "KY4NpPJDngYa4-l6"
       s = access_key + '\n' + app_id + '\n' + gmt_str
       hmac_object = hmac.new(secret_key.encode(), s.encode(), hashlib.sha1)
       hash_hex = hmac_object.digest()
       authorization = "Basic " + base64.b64encode(hash_hex).decode("utf-8")
    2.返回值数据格式
       ret integer 返回状态 0代表成功,其余代表失败 必需 0:成功 -1:失败
       msg string 描述信息 必需
       body object 返回信息 必需
    下一页
    上上签开发接口
    Built with