用生成证书工具当中的私钥apiclient_key.pem。在生成签名时程序报错。
导致无法生成签名。
https://pay.weixin.qq.com/docs/merchant/development/interface-rules/signature-generation.html
在这提供的链接里,缺少了生成PrivateKey的步骤。从网上找到的生成PrivateKey的代码,代入私钥apiclient_key.pem中的内容,就会报错。
DerInputStream.getLength(): lengthTag=111, too big
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDEEMpULuPfuHfq
NQ+QWo7zpqYKsM5SzNtQGSQIHiYmtVI9y8YZ+iVfzakUpMqCwmFGmnWHEtN8dHct
……中间省略21行类似的内容……
ScaX5UyHXihG8TfjTvNE8giNm697weQxyZ+Yy9SYtyi1KuzqSr9LLaQ2xamXOh3J
AKXaVXpEKh04NsN2BRjGb8OiQcIUkR2BVTFmwaSv2GFfk68mToGHQRleyiSbHUG6
4US+VzcmZaMzstcNdDREbw6E
-----END PRIVATE KEY-----
你好,我就是按照这个方法生成的证书,一共有3个文件apiclient_cert.p12、apiclient_cert.pem、apiclient_key.pem。其中在微信支付(JSAPI)代码中用SHA256 with RSA的方式生成签名。参考的就是https://pay.weixin.qq.com/docs/merchant/development/interface-rules/signature-generation.html里的方法:
Signature sign = Signature.getInstance("SHA256withRSA");
这里面initSign需要添加你的私钥,但私钥需要处理成PrivateKey格式,用之前生成的私钥apiclient_key.pem生成PrivateKey,会报错,错误信息见1楼。请问如何处理?
APi证书是在商户后台获取的https://kf.qq.com/faq/161222NneAJf161222U7fARv.html
Signature sign = Signature.getInstance("SHA256withRSA");
sign.initSign(yourPrivateKey);
sign.update(message);
这里面initSign需要添加你的私钥,但私钥需要处理成PrivateKey格式,用之前生成的私钥apiclient_key.pem生成PrivateKey,会报错,错误信息见1楼。请问如何处理?