支付宝支付php的demo或sdk报错 Warning: openssl_sign() [function.openssl-sign]: Unknown signature algorithm. in

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了支付宝支付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交流群南宁的朋友,还有原著紫石头的文章。









以上是关于支付宝支付php的demo或sdk报错 Warning: openssl_sign() [function.openssl-sign]: Unknown signature algorithm. in的主要内容,如果未能解决你的问题,请参考以下文章

接入支付宝支付SDK

支付宝退款demo

***CodeIgniter框架集成支付宝即时到账支付SDK

支付宝SDK怎么用

IOS支付宝支付步骤

支付宝---手机APP支付