laravel 5.*进行支付宝同步/异步通知签名验证问题汇总

earnpls • 265 次浏览 • 0 个回复 • 2018年02月13日

支付宝同步/异步通知签名验证在我们支付成功之后常常会用到,但是在我们的使用过程中常常会出现各种问题,今天我汇集一下使用方法与问题汇总

一、使用方法

如下demo所示,我们需要alipayrsaPublicKey$params$params为你获取到的所有参数,你可以直接传$request->all()即可

$aop = new AopClient();
$aop->alipayrsaPublicKey = "支付宝公钥";
$result = $aop->rsaCheckV1($params, null, "RSA2");
return $result;

二、常见问题汇总

1、出现openssl_verify(): supplied key param cannot be coerced into a public key错误

遇到如上问题,需要核对您的alipayrsaPublicKey是否正确,这里是支付宝公钥而不是您输入的应用公钥,如图所示:

其二、看一下是否是使用$aop->alipayrsaPublicKey = "支付宝公钥";这种方法传值

2、签名验证失败

使用rsaCheckV1()验证签名返回false时候,表示我们的加密解密没有问题了,只是我们的验证失败。

  • 1、首先你要查看您是否使用了$request->all()获取了所有参数。
  • 2、csrf验证必须关闭,Middleware\VerifyCsrfToken修改$except,添加异步通知的列外,如添加一行alipay/*

3、支付宝验签返回0或1,不返回true和false

支付宝验签返回0或1,不返回true和false,其中1代表成功,0代表失败,自己改一下即可。


原创文章,转载请注明 :laravel 5.*进行支付宝同步/异步通知签名验证问题汇总 - Laravel学习网
原文出处: https://phpartisan.cn/news/79.html
问题交流群 :168117787
提交评论
要回复文章请先登录注册
用户评论
  • 没有评论
[ 配置教程 ] 在ubuntu16.04中部署LNMP环境(php7+maridb且开启maridb远程以及nginx多域名访问 )并配置laravel环境 laravel如何修改默认的加密与解密方式?