asp.net – PayPal REST API DotNet SDK 1.9.1 – URI端点在哪里?

我将PayPal Dotnet REST SDK 1.9.1安装到测试应用程序中,一切正常(完全没有问题).但是注意到端点没有指定(我也不需要指定它),所以我认为它存储在某个地方(paypal.dll?).

运行SDK代码示例(取自PayPal的开发人员站点)似乎会自动生成3个链接.

我是否需要担心URI是否嵌入在某个地方的dll中?

有没有理由改变它?

*****编辑*******
这是我用来获取APIContext的代码 – 有没有人看到这段代码的问题?无论我为端点(或模式,或者你有什么)投入什么,SDK总是使用沙箱端点.这里真正的疯狂是它正在接受LIVE ClientId和Secret(因此它肯定会连接到LIVE端点),但是任何进一步的请求始终都是沙箱端点.注意:此函数调用一次,Context仅传递给其他函数/调用/ what-have-you.我甚至把它设置为通过引用而没有快乐.

public static PayPal.Api.APIContext GetPaypalRestAPIContext()
{
    try
    {
        Dictionary<string,string> config = null;
        if (WebAppSettings.PaypalMode.ToLower != "live")
        {
            config = new Dictionary<string,string>()
            {
                {"mode",WebAppSettings.PaypalMode.ToLower},{"clientId",WebAppSettings.PaypalTestClientId},{"clientSecret",WebAppSettings.PaypalTestClientSecret},{"endpoint","https://api.sandBox.paypal.com/"}
            };
        }
        else
        {
            config = new Dictionary<string,WebAppSettings.PaypalClientId},WebAppSettings.PaypalClientSecret},"https://api.paypal.com/"}
            };
        }

        string accesstoken = (new PayPal.Api.OAuthTokenCredential(config)).GetAccesstoken();
        PayPal.Api.APIContext apiContext = new PayPal.Api.APIContext(accesstoken);

        return apiContext;
    }
    catch (Exception ex)
    {
        EventLog.LogEvent("Paypal APIContext","PaypalRestAPIContext has Failed.",EventLogSeverity.Warning);
        return null;
    }

}

我觉得我在这里错过了一些东西或者失去了理智.

解决方法

根据 API reference documentation

The URL to the API service

  • SandBox. https://api.sandBox.paypal.com
  • Live. https://api.paypal.com

这些相同的URL可以在BaseConstants类的GitHub Repository of the SDK中找到,这意味着它们实际上是在SDK中嵌入/硬编码的

/// <summary>
/// SandBox REST API endpoint
/// </summary>
public const string RESTSandBoxEndpoint = "https://api.sandBox.paypal.com/";

/// <summary>
/// Live REST API endpoint
/// </summary>
public const string RESTLiveEndpoint = "https://api.paypal.com/";

/// <summary>
/// Security Test SandBox REST API endpoint
/// </summary>
public const string RESTSecurityTestSandoxEndpoint = "https://test-api.sandBox.paypal.com/";

这将确认观察到由SDK“生成”的3个链接.

文档中也提到了.

In order to use the PayPal .NET SDK with your application,you will need to first configure your application. By default,the SDK will attempt to look for PayPal-specific settings in your application’s web.config or app.config file.

PayPal Config Settings

The following is a sample config file containing the configuration sections that are required in order for the settings to be used with this SDK:

<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>

mode: Determines which PayPal endpoint URL will be used with your application. Possible values are live or sandBox.

因此,看起来设置中的模式将确定在向API发出请求时SDK调用哪个端点URL.

回答你的问题.

Do I need to worry that the URI is embedded in the dll somewhere?

没有.

Would there be any reason to change it?

它们允许工具在设置中更改代码运行的模式,以便在执行时使用适当的enpoint URL.这意味着如果要对沙箱运行测试,则只需更改应用程序的模式设置即可.

相关文章

一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....
推荐一款比较牛的富文本编辑器:http://kindeditor.net/
一、异或运算异或,英文为exclusive OR,或缩写成xor异或(x...
一、云计算概念 云计算(cloud computing)是基于互联网的相...