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验签。