加签验签

密钥分发

在开始接入前, 您首先需要生成RSA密钥对,保留好私钥并将公钥交给PayKKa平台相关对接人员。

生产密钥分发流程:todo待定

构造签名串

签名串一共有五行,每一行为一个参数。结尾以\n (换行符,ASCII编码值为0x0A)结束,不包括最后一行。

注意:签名串的结构规则:每行一个元素,该行元素若是缺省不用传,但是换行符需要,保持结构不变。始终遵循一行一个元素,没有元素,还是得换行,最后一个元素除外

请求路径\n
请求时间戳(timestamp)\n
请求随机串(nonce)\n
商户号\n
请求报文主体

请求或响应不包含报文主体

请求路径\n
请求时间戳(timestamp)\n
请求随机串(nonce)\n
商户号

请求的资源不涉及商户号

可以不用传商户号,但是换行符还是需要

请求路径\n
请求时间戳(timestamp)\n
请求随机串(nonce)\n
\n
请求报文主体

文件上传的加签验签

文件上传的加签验签方式与其他基于文本的API不同, 在计算签名时使用的body为meta的json字符串

请求路径\n
请求时间戳(timestamp)\n
请求随机串(nonce)\n
商户号\n
请求meta的json字符串

计算签名值

绝大多数编程语言提供的签名函数支持对签名数据进行签名。强烈建议客户调用该类函数,使用客户私钥对待签名串进行SHA256withRSA 签名,并对签名结果进行Base64编码得到签名值。

设置HTTP头

  • 在所请求内容归属于商户的情况下, 需要设置X-Merch-Id请求头, 内容是 Paykka跨境收款开放平台 分配的商户号 ( 生成方式)
  • 请求通过HTTPAuthorization头来传递签名, 其内容是一个经过URLEncodeJSON对象, 包含以下字段:
key格式说明
sign_typeString签名方式(SHA256_WITH_RSA)
timestampString请求生成时的毫秒时间戳值(Milliseconds since Unix Epoch)
nonceString(6-32)请求生成时, 随机生成的字符串, 用于请求防重
key_idString平台侧分配的密钥id, 对应客户
signatureString请求签名