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


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

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);
}

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM