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

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

本地測試 nat pcl 文件 openss sign 使用 是把 交流

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

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交流群南寧的朋友,還有原著紫石頭的文章。

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