1. 程式人生 > >最近在做支付寶支付,在本地測試一切正常,上傳到服務器就遇到報錯:

最近在做支付寶支付,在本地測試一切正常,上傳到服務器就遇到報錯:

-1 tail 服務 war tar nbsp 百度 nature function

最近在做支付寶支付,在本地測試一切正常,上傳到服務器就遇到報錯:

Warning: openssl_sign() [function.openssl-sign]: Unknown signature algorithm. in

這種問題有兩種情況

1.php未開啟php_OpenSSL擴展

2.php版本過低,不支持OPENSSL_ALGO_SHA256這樣的參數

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

開啟openss擴展自行百度

服務器上PHP環境支持openssl_sign()但卻不支持 OPENSSL_ALGO_SHA256這樣的參數在php5.4.8以上版本才支持,低版本的是使用的SHA256,

報錯原因是支付寶的demo中AopClient.php文件裏使用到了這樣的語句:

if ("RSA2" == $signType) {
openssl_sign($data, $sign, $res,OPENSSL_ALGO_SHA256);
} else {
openssl_sign($data, $sign, $res);
}

解決辦法就是把 OPENSSL_ALGO_SHA256 改成 SHA256

if ("RSA2" == $signType) {
openssl_sign($data, $sign, $res,SHA256);
} else {
openssl_sign($data, $sign, $res);
}

註意:這個文件中共有三處,要全部修改好!

非常感謝linux交流群南寧的朋友,還有原著紫石頭的文章。

支付寶支付php的demo或sdk報錯 Warning: openssl_sign() [function.openssl-sign]: Unknown signature algorithm. in

最近在做支付寶支付,在本地測試一切正常,上傳到服務器就遇到報錯: