码迷,mamicode.com
首页 > Web开发 > 详细

最近在做支付宝支付,在本地测试一切正常,上传到服务器就遇到报错:

时间:2017-09-06 15:45:56      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:function   php版本   开启   fun   本地   linux   支付   ==   mic   

最近在做支付宝支付,在本地测试一切正常,上传到服务器就遇到报错:

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

最近在做支付宝支付,在本地测试一切正常,上传到服务器就遇到报错:

标签:function   php版本   开启   fun   本地   linux   支付   ==   mic   

原文地址:http://www.cnblogs.com/jinshuo/p/7484749.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!