远程服务器返回错误:(401) Unauthorized。使用 Paypal Rest APi 时

Posted

技术标签:

【中文标题】远程服务器返回错误:(401) Unauthorized。使用 Paypal Rest APi 时【英文标题】:The remote server returned an error: (401) Unauthorized. while using Paypal Rest APi 【发布时间】:2017-01-25 02:46:09 【问题描述】:

我正在使用 Paypal Rest APi。当我尝试获取访问令牌时,它给了我未经授权的错误。 索引页

@html.ActionLink("Pay with Paypal Account", "PaymentWithPaypal", "Paypal")

web.config

<configSection>
<section name="paypal" type="PayPal.SDKConfigHandler, PayPal"/>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSection>

    <paypal>
    <settings>
      <add name="mode" value="sandbox"/>
      <add name="connectionTimeout" value="360000"/>
      <add name="requestRetries" value="1"/>
      <add name="clientId" value="###########"/>
      <add name="clientSecret" value="**********"/>
    </settings>
  </paypal>
  <log4net>
    <appender name="FileAppender" type="log4net.Appender.FileAppender">
      <file value="my_app.log"/>
      <appendToFile value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date       [%thread] %-5level %logger [%propertyNDC] %message%newline"/>
      </layout>
    </appender>
    <root>
      <level value="DEBUG"/>
      <appender-ref ref="FileAppender"/>
    </root>
  </log4net>
  <system.web>
    <securityPolicy>
      <trustLevel name="Full" policyFile="internal"/>
    </securityPolicy>

错误信息是

The remote server returned an error: (401) Unauthorized.

说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详情:PayPal.IdentityException:远程服务器返回错误:(401) Unauthorized

错误出现在下一行

string accessToken = new OAuthTokenCredential(ClientId, ClientSecret, GetConfig()).GetAccessToken();

在 Inspect 元素中给出以下消息。

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

我用来集成 Rest Api 的代码可以在这里找到 http://www.codeproject.com/Articles/870870/Using-Paypal-Rest-API-with-ASP-NET-MVC

谁能帮我解决这个问题。

【问题讨论】:

【参考方案1】:

试试下面的代码

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

【讨论】:

以上是关于远程服务器返回错误:(401) Unauthorized。使用 Paypal Rest APi 时的主要内容,如果未能解决你的问题,请参考以下文章

远程服务器返回错误:(401) Unauthorized: Push Notification

远程服务器返回错误:(401)在Zendesk中未经授权

远程服务器返回错误:(401) Unauthorized with paypal

远程服务器返回错误:(401) Unauthorized。使用 Paypal Rest APi 时

C#使用HttpWebRequest请求url出现远程服务器返回一个错误:401未经授权

ReportViewer中的SSRS导出返回401 Unauthorized