84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
在支付宝手机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的就可以