84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
在支付宝手机App的支付成功回调签名文档里要求使用RSA2验签,但我看了openssl_verify第4个参数里没有相关的常量,我改怎么处理?
文档:https://doc.open.alipay.com/d...
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
这个步骤不用你做, sdk 里面有了.
PHP SDK 中的
SDK_PHP/aop/AopClient.php 文件 572行.
/** rsaCheckV1 & rsaCheckV2 * 验证签名 * 在使用本方法前,必须初始化AopClient且传入公钥参数。 * 公钥是否是读取字符串还是读取文件,是根据初始化传入的值判断的。 **/ public function rsaCheckV1($params, $rsaPublicKeyFilePath,$signType='RSA') { $sign = $params['sign']; $params['sign_type'] = null; $params['sign'] = null; return $this->verify($this->getSignContent($params), $sign, $rsaPublicKeyFilePath,$signType); } public function rsaCheckV2($params, $rsaPublicKeyFilePath, $signType='RSA') { $sign = $params['sign']; $params['sign'] = null; return $this->verify($this->getSignContent($params), $sign, $rsaPublicKeyFilePath, $signType); }
扒了下,其sdk的代码,一目了然了:
if ("RSA2" == $signType) { $result = (bool)openssl_verify($data, base64_decode($sign), $res, OPENSSL_ALGO_SHA256); } else { $result = (bool)openssl_verify($data, base64_decode($sign), $res); }
就用默认OPENSSL_ALGO_SHA1的就可以
这个步骤不用你做, sdk 里面有了.
PHP SDK 中的
SDK_PHP/aop/AopClient.php 文件 572行.
扒了下,其sdk的代码,一目了然了:
就用默认OPENSSL_ALGO_SHA1的就可以