最近給客戶做支付寶服務窗,遇到報錯:
Warning: openssl_sign() [function.openssl-sign]: Unknown signature algorithm. in
#後來查了查,是我的伺服器上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);
}
#注意:這個檔案共有三處,要全部修改好!
以上是支付寶服務窗php的demo報錯 Warning: openssl_sign() [function.openssl...的詳細內容。更多資訊請關注PHP中文網其他相關文章!