支付宝支付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交流群南宁的朋友,还有原著紫石头的文章。

时间: 2024-10-14 22:43:24

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

1. 今天添加SDK报错的原因

今天郁闷至极,真机调试时,昨天建好的工程文件一大早来就无法识别手机,还报一大堆的错,后来下午实在没办法,把工程件删了,重新见一个工程,这下竟然没报错了,但是一添加sdk文件进里面去又报错,我日,直接快让我崩溃了,我当时采用的是直接用"Add Files to xxx", 后来才知道这样添加编译器找不到文件,而是要用到Build Phases ->compile sources--添加文件:   link binary with libraries 添加静态库.然后就解决问题了.

关于报错:Warning: Cannot modify header information - headers already sent by (output started at

8月5日,第一个项目即将完成,测试时,发现登录功能会出现小问题:记住密码的时候会报错 Warning: Cannot modify header information - headers already sent by (output started at 经过再三在百度上查询,终于查到错误的关键原因:[setcookie之前不可以有html标签内容].导致出现这种错误的方式有很多种,但惟独这种解释最让我理解. (因为百度知道的内容不可以复制了,只能贴出地址,有详细解释)地址[http://z

mysql报错解决MySQL Binlog(异常)——mysqlbinlog: unknown variable 'default-character-set=utf8'

在使用mysqlbinlog分析日志时,报错: /usr/local/mysql/bin/mysqlbinlog: unknown variable 'default-character-set=utf8' 原因分析: 产生这个问题的原因是因为我在my.cnf中的client选项组中添加了:  default-character-set=utf8 这个是mysqlbinlog的一个bug 解决方法: 使用mysqlbinlog工具查看二进制日志时会重新读取的mysql的配置文件my.cnf,而不

(TODO:)下载图片,报错:warning: could not load any Objective-C class information from the dyld shared cache. This will significantly reduce the quality of type information available.

想使用NSInvocationOperation下载图片,然而并没有下载下来, NSData为nil, 还有报错:(打断点就报错) warning: could not load any Objective-C class information from the dyld shared cache. This will significantly reduce the quality of type information available. 现在这两个问题还没解决, 以后再看吧,先提交到g

Docker报错 WARNING: IPv4 forwarding is disabled. Networking will not work.

问题:创建容器的时候报错WARNING: IPv4 forwarding is disabled. Networking will not work. # docker run -it -p 30001:22 --name=centos-ssh centos /bin/bash WARNING: IPv4 forwarding is disabled. Networking will not work. 解决办法:# vim /usr/lib/sysctl.d/00-system.conf 添加

报错:pymysql.err.InternalError: (1054, "Unknown column 'AType' in 'field list'")

报错背景: 报错前sql代码展示: List = ['Manual', 'Float', 'TimeValue', 'None', '100', '100', '0', '0', '0', '0', 'Forced', '排水系统3#中央泵负压', '556', 'SLWS_ps_3hzybf_YL.PV', 'Analog', '2019/6/13 8:32:46', '-0.0034143477678299', '0'] # sql = "insert into test(id, name)

安装SilverLight4 SDK报错问题

SilverLight4_Tool.exe装SL4 SDK报如下错误的解决办法: 解决办法: 1.装vs2010sp1(如果你还没装的话) 2.解压SilverLight4_Tool.exe 1).新建一个空的文件夹,把SilverLight4_Tool.exe解压一下 2).在解压后的文件中找到 VS10-KB982218-v4.exe,silverlight_sdk.msi 分别安装运行一下 3).我的问题在跑完1)2)后就已经解决了,如果你还不能解决的话,可以试一下这个:在解压文件下找到

集成友盟分享SDK报错

删除4.2.1版本的reference换成4.3版本运行报错 解决办法:要将4.2.1版本的全部库文件物理删除,不要只删除reference.

DRDB报错------0: Failure: (119) No valid meta-data signature found.

一. 错误 drbdadm create-md datadrbdadm up data  <--启动时报错 [[email protected]1-1 ~]# drbdadm up data 0: Failure: (119) No valid meta-data signature found. ==> Use 'drbdadm create-md res' to initialize meta-data area. <== Command 'drbdsetup-84 attach 0