revert(pay): 恢复SHA256签名算法(彩虹易支付V2标准)\n\n- 测试SHA1算法后仍失败,改回SHA256(文档明确V2使用SHA256WithRSA)\n- 诊断脚本证实:商户私钥与商户公钥不是一对,导致所有签名方式验签失败\n- 根本问题:密钥不匹配,需用户核对支付平台后台公钥
This commit is contained in:
+1
-1
@@ -165,7 +165,7 @@ function buildSign($params, $privateKeyPem) {
|
||||
if ($key === false) {
|
||||
throw new Exception('商户私钥加载失败: ' . openssl_error_string());
|
||||
}
|
||||
openssl_sign($data, $signature, $key, OPENSSL_ALGO_SHA1); // 尝试SHA1算法,彩虹易支付可能使用SHA1而非SHA256
|
||||
openssl_sign($data, $signature, $key, OPENSSL_ALGO_SHA256); // 彩虹易支付V2接口使用SHA256WithRSA
|
||||
// PHP 8.0+ 已弃用 openssl_free_key,资源会自动释放;显式调用会触发弃用警告,污染 JSON 响应
|
||||
if (PHP_VERSION_ID < 80000) {
|
||||
@openssl_free_key($key);
|
||||
|
||||
Reference in New Issue
Block a user