跳到主要内容

2 签名规范

2.1 名词解释​

加密: 对敏感信息字段进行DES3方式加密,由商户生成24位随机密钥key,然后使用平台公钥(由平台提供)对key进行DES3加密。

签名: 使用商户私钥进行MD5WITHRSA签名,平台使用商户公钥进行验签;响应时服务端使用平台私钥进行MD5WITHRSA签名,商户使用平台公钥进行验签。

2.2 签名密钥​

PUBLIC_KEY:

由商户生成的数字签名公钥,上传到平台。

PRIVATE_KEY:

由商户生成的数字签名私钥,自行妥善保管。

PLATFORM_PUBLIC_KEY:

平台通用数字签名公钥。

2.3 签名规则​

对于API请求,签名原始串按以下方式组装成字符串:

1、 对敏感信息字段,使用商户的【DES_KEY】进行DES3加密。

2、 除sign参数值外,所有参数值按照参数名的顺序(&P1参数值&P2参数值&P3参数值...)进行拼接。

3、 签名原始串中,字段值都采用原始值或者DES3加密后的字符串,统一使用UTF-8编码格式,中文不需要URL Encode编码。

4、 参数值为空也需要拼接到签名串(&P1参数值&P2参数值&P3参数值&&P5参数值...),除接口中明确规定不参与签名的参数值。

5、 同步通知和异步通知签名时,传送的sign参数不参与签名。

6、 使用商户数字签名私钥【PRIVATE_KEY】进行MD5WITHRSA签名,并将签名值放置在sign中。

2.4 验签规则​

对于API请求响应,按照如下方式进行验签

1、 将返回参数按照顺序拼接到签名串(&P1参数值&P2参数值&P3参数值&&P5参数值...),除接口中明确规定不参与签名的参数值。

2、 使用平台数字签名公钥【PLATFORM_PUBLIC_KEY】,对签名串进行MD5WITHRSA验签。