1

我在使用 PayPal 的 API 时遇到了一些麻烦。当我尝试调用 SetExpressCheckout 方法时(并且我相信我添加了与示例中相同的项目/类),我收到以下错误:

The type initializer for 'PayPal.Manager.ConfigManager' threw an exception.

给出的内部异常是:

{"Cannot read config file"}

这让我想到:我的 PayPal API 调用方法在一个程序集中,并且我有一个 Web 服务,它调用此程序集中的方法以使用 PayPal API。很简单,它的工作原理是这样的:

Web Service ---calls---> Assembly ---calls---> PayPal API

有人知道为什么会这样吗?它真的让我感到困惑,它如何在示例项目中工作,但在我自己的项目中却不行。

4

1 回答 1

3

由于它还没有出现任何答案,而且我在 MVC3 .Net 应用程序中实现 PayPal API 时遇到了同样的错误,以下对我有用。它直接取自 PayPal API 示例 .Net Project Web.Config:

在您的 Web.Config 文件中,在顶部(作为第一个子元素)添加如下引用:

<configSections>
  <section name="paypal" type="PayPal.Manager.SDKConfigHandler, PayPal_Merchant_SDK" />
</configSections>

然后添加 PayPal SDK 配置

<paypal>
  <settings>
    <!-- The URL that the user must be redirected to in order to login and approve some payment actions-->
    <add name="paypalUrl" value="https://www.sandbox.paypal.com/webscr?cmd="/>
    <!-- The API endpoint -->
    <add name="endpoint" value="https://api-3t.sandbox.paypal.com/2.0"/>
    <!-- Connection timeout in milliseconds -->
    <add name="connectionTimeout" value="360000"/>
    <!-- The number of times a request must be retried if the API endpoint is   unresponsive -->
    <add name="requestRetries" value="3"/>
    <add name="binding" value="SOAP"/>
    <add name="IPAddress" value="127.0.0.1"/>
    <!-- 
      API version number. You will not normally have to change this unless you
      have a specific need to work with an older version of the API
     -->
    <add name="APIVersion" value="84.0"/>
  </settings>

  <accounts>
    <!--
      Add API credentials - 3 token or client certificate.
      You can add multiple account credentials here. The SDK will pick the first   account
      unless you specifically request an account in the service wrapper mehod.
    -->
    <account apiUsername="sdk-three_api1.sdk.com" apiPassword="QFZCWN5HZM8VBG7Q"
        apiSignature="A-IzJhZZjhg29XQ2qnhapuwxIDzyAZQ92FRP5dqBzVesOkzbdUONzmOU"   applicationId="APP-80W284485P519543T"/>
    <!--
    <account apiUsername="enduser_biz_api1.gmail.com" apiPassword="SACH3VA3C29DXGUG"
      apiCertificate="<Absolute path to paypal_cert.p12>" 
             privateKeyPassword="password" applicationId="APP-80W284485P519543T"/>
     -->           
  </accounts>
</paypal>
于 2012-09-23T04:09:44.537 回答