快速开发
激活商户后台
商户在使用正式的商户编号进行对接前,需要确认在入网时的注册邮箱中已经收到商户后台激活邮件,并及时激活商户后台,激活邮件中的链接有时效性,如果链接失效,请联系商务经理重新发送激活邮件。
CFCA证书下载与导出
及时联系商务经理申请CFCA证书(接口对接中数据加解密需要),然后请注意查收邮箱,共两封,两码发放通知与操作说明,CFCA两码邮件有效期14天,如邮件过期或因其他情况导致证书无法下载安装,请及时联系技术支持,证书使用360浏览器或搜狗浏览器下载与安装。
加解密注意事项
为了数据安全,首信易支付接口综合使用了两种加密方法、两种签名方法以及一种排序方法,分别是:CFCA公钥证书加密、AES加密、SHA1签名、CFCA私钥证书签名和键名首字母排序。
1.证书使用规则:
商户使用自己的正式商户编号时,证书使用情况如下:导出的公钥证书.cer需要上传至商户后台,程序中公钥使用SDK demo中的公钥.cer,程序中私钥pfx以及私钥密码换成下发证书后导出的私钥.pfx和导出时设置的私钥密码。
2.加密流程简述:
- 按a-z顺序排列键名,对应的键值中间用#进行拼接,示例:1#2#3#(“#”尾加首不加,空值不参与签名)
- 进行SHA1 签名
- 商户下载导出的CFCA私钥.pfx对第2步生成的字节流结果再签名, 将结果做为hmac值
- 由商户随机生成十六位AES密钥
- 用第4步的AES密钥对加入了第3步hmac后的请求数据JSON串进行加密
- 用首信易SDK demo里提供的CFCA公钥.cer加密第4步的AES密钥
- 把第5步加密完成的密文set到请求体里
- 把merchantId、requestId、encryptKey(第6步加密后得到的数据)传入请求头
- http post请求接口
3.解密流程简述:
返回数据和请求数据是相同的格式,按照请求流程的逆推进行解密以及验签。
- 接收post请求,获取返回头的encryptKey ,返回体 data
- 用商户下载导出的私钥.pfx解密第1步的encryptKey 得到十六位的 AES密钥
- 用第2步的AES密钥解密第1步的data
- 将第3步得到的原数据 JSON去掉hmac,按a-z顺序排列键名,对应的键值中间用#进行拼接,示例:1#2#3#(“#”尾加首不加,空值不参与签名)
- 进行SHA1 签名
- 用首信易提供的SDK demo里的CFCA公钥.cer对第3步得到的数据中的hmac进行验签,即和第5步的结果比较,以保证数据没有被篡改。
4. 注意:
- 拼接hmac后的JSON经AES加密后的密文直接放在data中,data不是JSON也不要嵌套。
- SHA1前要UTF-8编码。SHA1后的字符串不要进行base64,直接签名。
- Java demo中需要配置公私钥路径与商编。