c# - 我可以在 c# 中使用 PayPal API 在 app.config 文件中使用两个不同的 clientId 和 clientSecret 值吗?

标签 c# paypal app-config paypal-rest-sdk

有什么合理的方法可以在同一个 C# Winforms 应用程序中使用两个不同的 clientId 和 clientSecret 值吗?

这就是我想要这样做的原因:我有一个公司内部应用程序可以为客户执行 PayPal 退款 - 有些来 self 们的美国 PayPal 账户,有些来 self 们的英国 PayPal 账户。因为它们来自不同的帐户,所以我需要创建两个 PayPal 应用程序并获得两组不同的安全 clientId 和 clientSecret 值。我真的很希望 Winforms 应用程序能够为任一帐户退款,但在这一点上,我只能通过使用 PayPal API 并在 app.config 文件中包含以下代码才能成功退款。

  <!-- PayPal SDK settings -->
  <paypal>
    <settings>
      <add name="mode" value="live" />
      <add name="clientId" value="AZxxxxxxxxxxxxxxxxx" />
      <add name="clientSecret" value="ELxxxxxxxxxxxxxxxxxxxxxxxxxx" />
    </settings>
  </paypal>

如果必须,我会为我们的英国帐户创建一个单独的退款申请,但似乎必须有一种合理的方式在一个申请中执行此操作。

据我所知,虽然可能有一些方法可以更改 app.config 文件,但每个人似乎都在说这是一个糟糕的主意,即使您设法做到了,您的应用程序也会重新启动。

所以我想我想问的是,有没有什么方法可以在运行时更改 clientId 和 clientSecret 的值,而不会真正导致程序重新启动?或者,是否有其他方法从 PayPal API 获取访问 token ,允许我在运行时指定 clientId 和 clientSecret?


更新 - 在阅读下面 Erik Philip 的回答后,我尝试在我的 app.config 文件中注释掉 clientId 和 clientSecret,然后代替此代码进行授权:

    var config = ConfigManager.Instance.GetProperties();
    var accessToken = new OAuthTokenCredential(config).GetAccessToken();
    var apiContext = new APIContext(accessToken);

我添加了这个:

    var config = ConfigManager.Instance.GetProperties();
    config.Add("clientId", "AZxxxxxxxxxxxxxxxxxxxxxxxxx");
    config.Add("clientSecret", "ELxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
    var accessToken = new OAuthTokenCredential(config).GetAccessToken();
    var apiContext = new APIContext(accessToken);

效果很好,我后来在其中添加了一个 if() 语句来检查它是否是英国订单,并相应地更改了 clientId 和 clientSecret。

最佳答案

根据自己documentation ,你可以。

摘录:

使用 PayPal.Api;

// Get a reference to the config
var config = ConfigManager.Instance.GetProperties();

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

由于 ConfigManager 正在创建实例,您可以创建自己的实例,或者使用该实例并相应地进行更改。

关于c# - 我可以在 c# 中使用 PayPal API 在 app.config 文件中使用两个不同的 clientId 和 clientSecret 值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49203425/

相关文章:

Paypal 自定义字段不正确

html - Paypal 混合应用

php - 集成 Paypal 自适应支付 SDK 时未加载类

c# - .Net app.config 文件在 c :\ProgramFiles\下被忽略

c# - 如何在代码中检查 ASP.NET 身份验证策略而不是使用 AuthorizeAttribute?

c# - 多线程事件处理程序

dll - 为什么这个类库 dll 没有从 app.config 获取信息

.net - 如何在生产中配置 WCF 客户端?

C# asp.net - 在部署服务器上获取 Windows 用户登录帐户

c# - 遇到 SignInAsync 问题