1 通用说明 #

1.1 注意事项 #

合作伙伴使用SM2密钥生成器生成企业自身SM2公私密钥,请妥善保存自身私钥

与开放平台交换公钥,用户后续加解密过程

1.2 请求消息通用部分说明 #

1.2.1 请求头部设置 #

参数名称 参数说明 请求类型 是否必须 数据类型 schema
signature 签名值 header true string
encryptKey 验签秘钥 header true string
partnerCode 银行标识 header true string CMBC
reqEncryptData 加密的请求数据 body true string

1.2.2 请求消息通用参数说明 #

partnerCode:接入时需由业务方(积分运营处)申请分配

encryptKey:合作伙伴将SM4秘钥用厦航的公钥加密后传输

signature:合作伙伴用自身的私钥生成签名

reqEncryptData:采用SM4加密算法

1.2.3 加密过程 #

1)企业将需要发送到开放平台的报文准备好,转换为字符串。 2)使用随机算法生成16位SM4密钥字符串。(为了保证安全性,请不要使用固定的字符串作为SM4加密密钥)。 3)使用企业自身SM2私钥和SM2签名算法对第一步生成的报文字符串进行签名,得到签名串signature。 4)使用第二步生成的SM4密钥和SM4加密算法将第一步生成的报文字符串加密成密文。 5)使用开放平台公钥和SM2加密算法对第二步生成的16位SM4密钥字符串进行加密,得到encryptKey密文。 7)将上述signature、encryptKey添加到HTTP报文头中,第四步得到的报文体作为HTTP报文体,再添加其他默认参数后组成完成HTTP报文发送到开放平台完成一次API接口的调用

1.2.4 解密过程 #

解密验签过程与加密加签过程相反,流程如下: 1)从HTTP报文头中获取加密后的SM4密钥串encryptKey、签名字符串signature、加密类型encryptType、签名类型signType等;从HTTP报文体中获取加密后的报文体好httpBody。 2)使用企业自身私钥和SM2解密算法对encryptKey密钥进行解密,得到16位SM4加密密钥明文。 3)使用第二步得到的SM4密钥明文和SM4解密算法对httpBody进行解密,得到HTTP报文体明文。 4)使用开放平台公钥、SM2验签算法以及第一步的signature验证第三步的HTTP报文体明文签名。(请务必进行签名验证保证安全)

1.3 Demo #