You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

访问PayPal沙盒REST API应用时出现身份验证错误的原因是什么?

应Preston PHX要求,我已将完整测试ASP.NET Web App代码上传至Dropbox,方便大家定位我遇到的问题。

问题描述

我尝试使用PayPal官方Checkout-NET-SDK开发分支下的示例代码对接PayPal沙盒,运行失败。我在Visual Studio的Localhost环境下开启调试模式,设置多个断点排查问题。

测试页面中的以下代码行:

var createOrderResponse = CreateOrderSample.CreateOrder(true).Result;

抛出错误如下:

  • 内部异常2:
  • HttpException: {"error":"invalid_client","error_description":"*Client Authentication failed*"}

进一步排查发现错误触发位置为PayPalClient.cs中的environment方法,我已经修改该方法填入了我的PAYPAL_CLIENT_ID和PAYPAL_CLIENT_SECRET:

public static PayPalEnvironment environment()
{
    return new SandboxEnvironment(
         System.Environment.GetEnvironmentVariable("PAYPAL_CLIENT_ID") != null ?
         System.Environment.GetEnvironmentVariable("PAYPAL_CLIENT_ID"):"<<PAYPAL-CLIENT-ID>>",
        System.Environment.GetEnvironmentVariable("PAYPAL_CLIENT_SECRET") != null ?
         System.Environment.GetEnvironmentVariable("PAYPAL_CLIENT_SECRET"):"<<PAYPAL-CLIENT-SECRET>>");
}

我是从PayPal开发者后台我创建的REST API应用中准确复制的PAYPAL_CLIENT_ID和PAYPAL_CLIENT_SECRET,除了这两处配置外没有修改官方示例代码。我没有在官方示例代码中看到需要指定沙盒URL的要求,推测SandboxEnvironment实例会由PayPalCheckoutSdk自动配置对应的沙盒地址。

目前不清楚为什么对接沙盒账号会认证失败,想知道哪里可能操作有误,该问题是否和我使用Localhost环境有关?


2021年11月1日更新(针对Preston PHX的回复)

创建新的沙盒Client ID和Secret没有解决问题。此前我参考论坛帖子的建议,使用ngrok开放80端口以便通过Localhost进行PayPal测试,但沙盒连接依然认证失败。
测试用沙盒信息如下:

  • 沙盒Client ID:AZcb8XrqhJEUO7lS_JtKSe3sdNDLESmo3ekhupDKTL1J9vQCKVOzacCjO3PBQwSfngYkLGa-qS7EUrGV
  • Secret:EBEcuPewHdzCB8p0qE1Yszjk2eMyFCstzkL0Diz2WC5IQREsu6cDHr7yFG9a-GDIyljb-KRb2DA6Hoey

我在Windows10设备上安装了curl、Bash和Git,运行了PayPal官方文档中获取访问令牌页面指定的curl命令,运行结果已存入Word文档上传至Dropbox。


2021年11月2日更新

应Preston PHX要求,我已将测试使用的ASP.NET Web App项目文件夹上传至Dropbox,未上传解决方案文件。

内容的提问来源于stack exchange,提问作者haggis999

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:54:03