微信——企业付款到个人银行卡。
API介绍
RSA算法使用说明(非对称加密算法,算法采用RSA/ECB/OAEPPadding模式)
1、 调用获取RSA公钥API获取RSA公钥,落地成本地文件,假设为public.pem
2、 确定public.pem文件的存放路径,同时修改代码中文件的输入路径,加载RSA公钥
3、 用标准的RSA加密库对敏感信息进行加密,选择RSA_PKCS1_OAEP_PADDING填充模式
(eg:Java的填充方式要选 " RSA/ECB/OAEPWITHSHA-1ANDMGF1PADDING")
4、 得到进行rsa加密并转base64之后的密文
5、 将密文传给微信侧相应字段,如付款接口(enc_bank_no/enc_true_name)
2、 确定public.pem文件的存放路径,同时修改代码中文件的输入路径,加载RSA公钥
3、 用标准的RSA加密库对敏感信息进行加密,选择RSA_PKCS1_OAEP_PADDING填充模式
(eg:Java的填充方式要选 " RSA/ECB/OAEPWITHSHA-1ANDMGF1PADDING")
4、 得到进行rsa加密并转base64之后的密文
5、 将密文传给微信侧相应字段,如付款接口(enc_bank_no/enc_true_name)
接口默认输出PKCS#1格式的公钥,商户需根据自己开发的语言选择公钥格式
在我们实际开发过程中,要注意下面的问题:
1、先去微信商户平台 的API安全下载里,去下载最新的证书
2、该证书有三个文件,我们只使用apiclient.p12的,双击并导入系统,密码为商户号。
3、此处注意一点的是,这个文件里包括一个私钥,不要用他去转换公钥。
4、看上面的步骤。此时通过程序去调用获取RSA公钥的接口,即可返回该商户号对应的公钥。接口为:
5、接口会返回该商户对应的公钥,该公钥为默认输出PKCS#1格式的公钥
6、在.net里引用为PKCS#8号,根据官网提供的方法。发现没有办法转换成PCKS#8。
7、经过观察,发现PCKS#8与PKCS#1仅在后者的前面加上:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
8、再次打包尝试,顺利通过