C# 使用.NET Core执行支付时出现Paypal错误

C# 使用.NET Core执行支付时出现Paypal错误,c#,.net,asp.net-core,.net-core,paypal,C#,.net,Asp.net Core,.net Core,Paypal,我已经采取了一个项目已经完成了另一个开发人员,但未完成和充满漏洞。在这个项目中,我有一个使用PayPal(2.0.0-rc2)的PayPal集成。 我在配置设置中有PayPalaccounted和PayPalClientSettings,并用从Paypal开发者站点获取的实时环境数据填充它们。 我有一些代码可以初始化PayPalHttpClient设置和事务(输入正确的金额)并发送到PayPal,我想下面会这样。 一切正常,用户转到PayPal,如果他取消了,他会返回到正确的url,但是如果用户

我已经采取了一个项目已经完成了另一个开发人员,但未完成和充满漏洞。在这个项目中,我有一个使用PayPal(2.0.0-rc2)的PayPal集成。 我在配置设置中有PayPalaccounted和PayPalClientSettings,并用从Paypal开发者站点获取的实时环境数据填充它们。 我有一些代码可以初始化PayPalHttpClient设置和事务(输入正确的金额)并发送到PayPal,我想下面会这样。 一切正常,用户转到PayPal,如果他取消了,他会返回到正确的url,但是如果用户登录到他的PayPal帐户并进行支付,PayPal会准确地返回到我的代码中:

public异步任务PayPalReturnCallback(字符串paymentId、字符串令牌、字符串payerId)
{
尝试
{
var payPalManager=payPalManager.GetInstance(_payPalConfig);
var paymentUrl=等待payPalManager.ExecutePayment(paymentId,payerId);
} 
捕获(例外情况除外)
{
返回RedirectToAction(“PaymentFailed”,“Checkout”,new{paymentId,ex.Message});
}
订单=新订单(_orderDl);
等待订单。LoadOrderByPayPalCode(paymentId);
order.ExecutePaymentTimeStamp=DateTime.Now;
等待订单。保存();
返回重定向操作(“PaymentSuccess”,“Checkout”,新的{order.Id});
}
并在到达方法PayPalmManager.ExecutePayment时引发异常,并显示以下消息:

发生了一个或多个错误。({“error”:“invalid_client”,“error_description”:“client Authentication failed”})

但是客户端身份验证也很好,因为否则它不会第一次与PayPal连接。我觉得应该使用返回的“token”参数,但我不知道在哪里


非常感谢您的帮助

我终于找到了解决办法。在这个库中有两个地方,开发者必须指定它不是沙箱(或生产)区域中的任何MRE,第一个是在创建请求时,第二个是在进行最终付款时。更改客户端错误消失。

最终我找到了解决方案。在这个库中有两个地方,开发者必须指定它不是沙箱(或生产)区域中的任何MRE,第一个是在创建请求时,第二个是在进行最终付款时。更改以使客户端错误消失。

据我所知,我看到您在应用程序中使用的是production/live paypal配置,如果您在
debug
模式下运行应用程序会发生什么情况,您是否尝试在
发布
模式下运行该应用程序,或在paypal配置中使用测试模式并使用测试凭据。我尝试并运行该应用程序,直到用户登录为止…行为应该有所不同?!?它应该到达完成付款?可能是贝宝应用程序的参数,如用户令牌、电子邮件等没有被传递,我猜,我做贝宝集成已经很长时间了,但是,我认为在用户首次在paypal中授权您的应用程序后,他们会将授权码传还给您。如果您正在ASP.NET Core MVC(.NET Core 3.1)和C#中寻找paypal支付网关集成的最新解决方案,请查看演示>>>,据我所知,我看到您正在应用程序中使用production/live paypal配置,如果您在
debug
模式下运行应用程序会发生什么情况,您是否尝试在
发布
模式下运行该应用程序,或在paypal配置中使用测试模式并使用测试凭据。我尝试并运行该应用程序,直到用户登录为止…行为应该有所不同?!?它应该到达完成付款?可能是贝宝应用程序的参数,如用户令牌、电子邮件等没有被传递,我猜,我做贝宝集成已经很长时间了,但是,我认为,在用户首次在paypal中授权您的应用程序后,他们会将授权码传还给您。如果您正在ASP.NET Core MVC(.NET Core 3.1)和C#中寻找paypal支付网关集成的最新解决方案,请查看演示>>>