4

我在Battle Hack London上努力进行黑客攻击,我偶然发现了一个烦人的问题。用于 c# 的 PayPal SDK 似乎无法正常工作。

我正在尝试进行第一笔交易,这是我的代码(我将其放在一起修复损坏的在线文档

var tokenCredential = new OAuthTokenCredential(something, someother);
var accessToken = tokenCredential.GetAccessToken();
Payment createdPayment = new Payment
{
  intent = "sale",
  transactions = new List<Transaction>
  {
    new Transaction
    {
      amount = new Amount
      {
        total = value.ToString("R"), 
        currency = "GBP"
      },
      description = forWhat
    }
  }
}.Create(accessToken);

这导致

无法解析 *.Config 文件。确保您已正确配置“paypal”部分。

我已经追溯到这行代码,但我不知道如何正确配置该部分,也找不到正确的文档。

csharp REST SDK 应该如何配置?

4

6 回答 6

8

我遇到了同样的错误。我尝试了 Skliwz 的解决方案,但它对我不起作用。

相反,我能够通过在调用中传递一个字典对象来获得结果。

Dictionary<string, string> payPalConfig = new Dictionary<string, string>();
        payPalConfig.Add("mode", "sandbox");
OAuthTokenCredential tokenCredential = new AuthTokenCredential("myCliedId", "myClientSecret", payPalConfig);
string accessToken = tokenCredential.GetAccessToken();

仍在努力让我的登录工作......

于 2013-11-22T18:52:40.993 回答
5

我在 PayPal 开发人员的支持下解决了这个问题。需要补充一点:

<configSections>
  <section name="paypal" type="PayPal.Manager.SDKConfigHandler, PayPalCoreSDK"/>
</configSections>
<paypal>
  <accounts>
    <account apiUsername="xxx"
             apiPassword="yyy"
             applicationId="APP-80W284485P519543T"
             apiSignature="zzz"
             />
  </accounts>
  <settings>
    <add name="mode" value="sandbox"/>
  </settings>
</paypal>

其中xxx, yyy,zzz您是从主沙盒测试帐户的“帐户详细信息”中获得的值。

于 2013-10-12T21:48:32.230 回答
2

如果您使用的是 PayPal .Net SDK(我的是 1.3.0 版),您只需要以下内容:

<configSections>
    <section name="paypal" type="PayPal.SDKConfigHandler, PayPal" />
</configSections>
<paypal>
    <settings>
       <add name="mode" value="sandbox" />
    </settings>
</paypal>
于 2015-02-09T17:59:44.237 回答
1

如果您像我一样,不想将客户端信息存储在 *.config 文件(web.config、app.config)中,我发现您可以在必须传入的 Dictionary 中指定它到 OAuthTokenCredential 并分配给 APIContext.Config (工作的关键):

var clientId = "___REPLACE_WITH_CLIENTID___";
var clientSecret = "___REPLACE_WITH_CLIENTSECRET___";            
var sdkConfig = new Dictionary<string, string> {
   { "mode", "sandbox" },
   { "clientId", clientId },
   { "clientSecret", clientSecret }
};
var accessToken = new OAuthTokenCredential(clientId, clientSecret, sdkConfig).GetAccessToken();
var apiContext = new APIContext(accessToken);
apiContext.Config = sdkConfig;

必须将其传递给 OAuthTokenCredential 并将其设置为 apiContext.Config 似乎有点多余,但这对我有用。

于 2016-03-03T22:20:12.793 回答
0
var config = ConfigManager.Instance.GetProperties();

        // Use OAuthTokenCredential to request an access token from PayPal
        var accessToken = new OAuthTokenCredential(config).GetAccessToken();

网页配置:

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

  <!-- PayPal SDK settings -->
  <paypal>
    <settings>
      <add name="mode" value="sandbox"/>
      <add name="clientId" value="_client_Id_"/>
      <add name="clientSecret" value="_client_secret_"/>
    </settings>
  </paypal>
</configuration>
于 2015-04-07T09:25:15.463 回答
0

仅供将来参考,现在在SDK 的 GitHub wiki上提供了PayPal .NET SDK的可用配置设置。这包括有关所有受支持的 PayPal 配置设置及其默认值的信息。

如果您想使用您的应用程序启用日志记录,该 wiki 还包含有关如何(可选)在配置中设置 log4net的信息。

如果有任何信息缺失或需要澄清,或者您想请求对更多配置设置的支持,请随时在此处或GitHub 上告诉我。

于 2015-03-10T16:03:05.130 回答