Skip to main content

签名

为保证安全,JUSTAP 所有接口均需要对请求进行签名。服务器收到请求后进行签名的验证。如果签名验证不通过,将会拒绝处理请求,并返回 401 Unauthorized。
签名算法: base64Encode(hamc-sha256(md5(请求 body + 请求时间戳 + 一次性随机字符串) + 一次性随机字符串))

准备

首先需要在 Justap 创建一个应用,商户需要生成一对 RSA 密钥对,并将公钥配置到 商户中心 -> 开发配置。 RSA 可以使用支付宝提供的 密钥生成工具 来生成。 商户在使用时,可以按照下述步骤生成请求的签名。

算法描述

  • 在请求发送前,取完整的请求 body
  • 生成一个随机的32位字符串,得到 一次性随机字符串
  • 获取当前时间的时间戳,得到 请求时间戳
  • 在请求字符串后面拼接上 请求时间戳一次性随机字符串,得到 待 Hash 字符串
  • 待 Hash 字符串 计算 md5,得到 待签名字符串
  • 待签名字符串 后面拼接上 一次性随机字符串,得到完整的 待签名字符串
  • 使用商户 RSA 私钥,对 待签名字符串 计算签名,并对 结果 进行 base64 编码,即可得到 签名

设置HTTP头

Justap 要求请求通过 自定义头部 来传递签名。具体定义如下:

     X-Justap-Signature: 签名 
X-Justap-Request-Time: 请求时间戳
X-Justap-Nonce: 一次性随机字符串
X-Justap-Body-Hash: 待签名字符串
X-Justap-Api-Key: api key

具体的签名算法实现,可参考我们提供的各语言 SDK。