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

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

时间: 2024-10-09 21:00:19

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

JAVA基础知识之InputStreamReader流 和 将本地文件通过前端上传到服务器上

将本地文件通过前端上传到服务器上 public BaseResponseSwagger resolveFile(@Valid @ApiParam(value = "file")@RequestParam(name = "file",required = true) MultipartFile file){ if(file.isEmpty()){ throw new SoftwareException(ComStatusCodeEnum.COM_PARAM_VALID

微信支付二维码本地测试可以,上传到服务器不显示问题

今天给一个网站开发微信二维码支付,本地测试没问题,但是上传后在服务器上二维码就是不显示,打开路径也可以打开就是生成的图片内容不对. 后来用sesseion保存data参数解决. 但是多方寻找问题是url参数问题导致的,因为微信的参数是weixin://wxpay/bizpayurl 这种格式的,好像安全原因给过滤了,可能是无法获取正确的 ============================= protected void Page_Load(object sender, EventArgs

HTML5 本地裁剪图片并上传至服务器(转)

很多情况下用户上传的图片都需要经过裁剪,比如头像啊什么的.但以前实现这类需求都很复杂,往往需要先把图片上传到服务器,然后返回给用户,让用户确定裁剪坐标,发送给服务器,服务器裁剪完再返回给用户,来回需要 5 步.步骤繁琐不说,当很多用户上传图片的时候也很影响服务器性能. HTML5 的出现让我们可以更方便的实现这一需求.虽然这里所说的技术都貌似有点过时了(前端界的“过时”,你懂的),但还是有些许参考价值.在这里我只说一下要点,具体实现同学们慢慢研究. 下面奉上我自己写的一个demo,在输入框中选好

Web 本地图片 canvas 截取上传

我做了一个 Web 本地图片 canvas 截取上传 的demo.发现了几个问题,记录下: 1.  Canvas 元素大小 (css width height) 和表面大小(canvas 自身的 width height 属性)两个概念是不一样的,当两个大小不一致时,坐标需要进行转换计算. // 其中 x, y 是视口坐标 function windowToCanvas(canvas, x, y) { var bbox = canvas.getBoundingClientRect(); retu

织梦本地调试好的网站怎么上传到服务器

1/ 织梦在本地调试好后,进入本地网站的后台:点击 "系统-----数据库备份/还原", 织梦本地调试好的网站怎么 上传到服务器. 2/ 把本地程序根目录的install这个文件夹删除. 重新拷贝一个没有安装过织梦程序里面的install文件夹放到本地程序根目录下. 3/ 把本地织梦程序上传到服务器解压后,运行http://你的域名/install/ 这时就可以开始安装了.这个时候的密码可以自己设置. 4/ 安装好织梦网站程序后,进入服务器网站后台 跟上面一样 点击 "系统-

Android将应用程序的崩溃信息如何保存到本地文件,并上传服务器

导语:最近实在是太忙了,没有怎么更新公众号,也没有怎么认真去写一些内容,在这里先给关注我的朋友说一声抱歉,可能在接下来的一段时间,还是很忙,但是我会争取抽空多分享一下技术文章,给大家看,共同进步,也希望有能力的人可以一起出来分享. 我们在做应用开发的时候,需要程序的崩溃信息,来进行bug的修复和版本的更新,每一个应用程序都会有bug,所以都需要在后台纪录这些bug日志,然后上传到服务器,让程序员看,并进行修复.现在也有很多第三方的jar包能实现这种功能,比如友盟统计等,但是终究不如自己写的方便.

C# winform把本地文件上传到服务器上,和从服务器上下载文件

昨天在做项目过程中遇到需要把本地文件上传到服务器上的问题,在这里记录一下,方便大家互相学习! /// <summary> /// 上传文件方法/// </summary> /// <param name="filePath">本地文件所在路径(包括文件)</param> /// <param name="serverPath">文件存储服务器路径(包括文件)</param> public voi

Linux (rz、sz命令行)与本地电脑 命令行上传、下载文件

Linux 与本地电脑直接交互, 命令行上传.下载文件. 一.lrzsz命令行安装: 1.rpm安装:(链接: http://pan.baidu.com/s/1cBuTm2 密码: vijf) rpm -ivh lrzsz-0.12.20-22.1.x86_64.rpm 2.yum 安装: yum install lrzsz 二.命令使用: 1.发送到本地: sz 文件名 2.上传到服务器: rz -be 在弹出的框中选择文件,上传文件的用户和组是当前登录的用户

Phpcms V9网站从本地上传到服务器需要修改的地方

网站在本地做好后要迁移到服务器上:网站在发展的过程中,很可能多次的修改域名.那么在Phpcms V9中我们要怎么进行设置呢请进行以下步骤的修改: Phpcms V9网站上传到服务器具体方法如下: 1.修改/caches/configs/system.php里面所有和域名有关的,把以前的老域名修改为新域名就可以了. 2.进行后台设置->站点管理 对相应的站点的域名进行修改. 3.更新系统缓存.点击后台右上角的“更新缓存”按钮. 4.进入内容->附件管理->附件地址替换.把附件地址批量的替换