Closed 1523400779 closed 3 years ago
你要是搞不清相对路径怎么弄 ,就用绝对路径吧
这个是我服务器上的文件, /wechat-pay-certificate/在wwwroot下,不是我搞不清绝对路径和相对路径, 而且这个问题以前都是没有的,我之前在.net core 3.1下就已经发布好了, 都没有动过,只是更新到.net 5之后才出现的。
我其实只要用base64就行了,只是想找到问题到底出在哪里, 没关系,你不用管了,我自己扒你代码看
/wechat-pay-certificate/ 应该是在可执行文件之下 而不是wwwroot.... 另外证书这种东西你也敢放wwwroot......
@1523400779 请问你这个问题后来是怎么解决的,我也碰到了这个问题,发现是File.exists判断文件时,说文件不存在,其实文件是存在的。这可能是iis哪里出了问题?请问你是怎么解决的
WeChatPayOptions中的Certificate属性, 注释中表示可为 .p12证书文件路径、.p12证书文件的Base64编码, 但是,如果输入p12文件路径时,就会报错:如下: ERROR 2021-06-28 20:36:08,803 [21 ] Mvc.ExceptionHandling.AbpExceptionFilter - Exception has been thrown by the target of an invocation. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.FormatException: The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters. at System.Convert.FromBase64CharPtr(Char* inputPtr, Int32 inputLength) at System.Convert.FromBase64String(String s) at Essensoft.Paylink.WeChatPay.WeChatPayOptions.GetCertificateInfo() at Essensoft.Paylink.WeChatPay.WeChatPayOptions.set_Certificate(String value)
重现方法: 在WebApplicationSample的appsettings.json文件中, 设置WeChatPay:Certificate 为:"/wechat-pay-certificate/apiclient_cert.p12"可重现此问题