在做支付宝的二维码扫码支付功能,生成二维码成功,扫描后也能付款,付款后也能回调通知到我的页面,但是验证签名的时候出错,找了好久终于找到是什么原因:
引用
1. 用的RSA签名验证,默认密钥纯字符,并不是从pem文件中读取,主要是在Aop.Api.DefaultAopClient中的全局变量keyFromFile=false
2. 我项目中用的密钥是存在文件中的,所以要改为keyFromFile=true;
3. 生成二维码的时候生成签名的是用pem文件,同样在回调的时候验证签名是也应该是从pem文件中取密钥,而默认的是纯字符串,具体是在Com.Alipay.Notify类中(F2FPayDll/Alipaynotify.cs文件中)的132行 isSign = AlipaySignature.RSACheckContent(preSignStr, sign, _alipay_public_key, _charset,false); 把那个false改为true即可
时间: 2024-10-11 15:38:04