我正在尝试使用Paypal API进行一些付款,并且在代码行中出现致命异常,在该行中,我将CertificateFile属性设置为证书文件的位置。

相关代码如下:

using com.paypal.sdk.profiles;
using com.paypal.sdk.services;
using com.paypal.sdk.util;

IAPIProfile profile = ProfileFactory.createSignatureAPIProfile();
profile.CertificateFile = @"~\MyTestCertificate.txt";


深入研究“例外”详细信息并不能为我提供更多信息,它或多或少只是确认了确实发生了致命异常。

像这样省略波浪号和反斜杠会引发相同的错误:

profile.CertificateFile = @"MyTestCertificate.txt";


我以为也许我需要文件的内容而不是位置,所以我尝试了以下操作,但遇到了相同的错误:

profile.CertificateFile = new StreamReader(@"MyTestCertificate.txt").ReadToEnd().ToString();


看来,无论将CertificateFile属性设置为什么,都会出现致命异常。

几个问题:


在哪里可以找到有关Paypal API中IAPIProfile类的文档,特别是CertificateFile属性的文档?
如果不应该将证书文件的路径放在此位置,该怎么办?


只是为了确认,将MyTestCertificate.txt添加到我的解决方案中,并且Copy to Output Directory设置为Copy Always

异常文本如下:


  {“类型'com.paypal.sdk.exceptions.FatalException'的异常被抛出。”}


StackTrace看起来像这样:

at com.paypal.sdk.profiles.SignatureAPIProfile.set_CertificateFile(String value)
at MyProject_Payment_Processing.Paypal.DoCaptureCode(String authorization_id, String amount) in C:\Users\JMK\documents\visual studio 2010\Projects\MyProject Payment Processing\MyProject Payment Processing\Paypal.cs:line 16
at MyProject_Payment_Processing.Program.Main(String[] args) in C:\Users\JMK\documents\visual studio 2010\Projects\MyProject Payment Processing\MyProject Payment Processing\Program.cs:line 15
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()


Paypal API使用Log4Net来记录错误,如下所示:


  2012年7月20日12:39:11致命[FatalException]
  com.paypal.sdk.exceptions.FatalException:引发了类型'com.paypal.sdk.exceptions.FatalException'的异常。


谢谢

最佳答案

您将必须在Microsoft系统存储中安装证书。 SDK中的自述文件说明了如何使用WinHttpCertCfg工具进行此操作。

关于c# - 指向我的证书文件时, Paypal (Paypal)API掉落,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11578192/

10-17 00:18