1
回答
支付宝rsa,回调验签的openssl错误
【阿里云】新一代云服务器,9元体验半年,限时领取!>>>   

做支付宝  移动支付  对接的时候,

在对支付宝的notify进行验签的时候,读取公钥总是出错;

这是回调验签的代码


/**
	 * rsa 回调验签
	 */
	private function signNotifyVerify($data, $signFromAli) {
		$pubKey = file_get_contents(dirname(__FILE__).DIRECTORY_SEPARATOR.'alikey'.DIRECTORY_SEPARATOR.C('ALIPAY_APP_CONFIG.ali_public_key_path'));//私钥文件路径
        //转换为openssl密钥,必须是没有经过pkcs8转换的私钥
        var_dump($pubKey);
        $res = openssl_get_publickey( $pubKey );
var_dump(openssl_error_string());

       // var_dump(openssl_sign($data, $sign, $res));

        $result = (bool)openssl_verify($data, base64_decode($signFromAli), $res);
        
        //释放资源
		openssl_free_key($res);

        return $result;
	}



其中的 var_dump(openssl_error_string());,总是打印出来 


error:0906D06C:PEM routines:PEM_read_bio:no start line

我的支付宝公钥文件格式是:

-----BEGIN PUBLIC KEY-----
MIG***************************************************************************************9J7
sUoCrQX7Nmo**********************************************pR/************************65n
Sbs*************************************************************+e
CZ********************QAB
-----END PUBLIC KEY-----

求帮助

举报
李展飞
发帖于1年前 1回/1K+阅
顶部