**环境配置:**阿里云 windows 2012 R2,WAMPSERVER 3.0.17集成环境
**入坑问题:**RSA2密钥对的生产及验签,产生报错信息:Warning: openssl_verify(): supplied key param cannot be coerced into a public key in。工行自带说明SDK内只有JAVA环境配置的AES(第三方支付必须)和RSA生成工具,双击keygen_rsa.bat和AESKeygen.bat,一闪就退屏的绝望,不知道如何描述。
解决方案:
1、继续对接工行不动技术的对接人,猴年马月给出一个鬼都不一定知道的回复;
2、“面向百度编程”,是一个合格且成熟的CODER必备的修养。
下载支付宝RSA签名验签工具windows_V1.4,或者动手能力强的下载OPENSSL工具。
工行RSA证书格式,RSA2(2048),PKCS8格式。
生成商户私钥和应用公钥,在RSA.php内部echo测试通过。
openssl_sign($signStr,$sign_info,$merchant_private_key,OPENSSL_ALGO_MD5); flag = openssl_verify($signStr,$sign,$dinpay_public_key,OPENSSL_ALGO_MD5)
当最后接收到服务器返回的信息用私密解密以后,得到**$flag为1表示验签成功,0便是验签失败**。
本方案仅是解决该报错的一种情况,不一定适合所有情况,请选择测试。
开发者上传至工行API开放平台的公钥必须为PKCS8格式的RSA 2048密钥,该密钥还必须经过Base64转换。工行提供的API公钥也遵从同样标准。