Ошибка Paypal при ExecutePayment с. NET Core - PullRequest
1 голос
/ 03 апреля 2020

Я взял проект, уже выполненный другим разработчиком, но незаконченный и полный ошибок. В этом проекте у меня есть интеграция PayPal, которая использует PayPal (2.0.0-rc2). У меня есть PayPalAccountId и PayPalClientSettings в настройках конфигурации, и я заполняю их данными о реальной среде, взятыми с сайта разработчиков Paypal. У меня есть некоторый код, который инициализирует настройку PayPalHttpClient и транзакцию (введите правильную сумму) и отправляет в PayPal, я полагаю, что это следует этот пример . Все работает, пользователь переходит в PayPal и, если он отменяет, возвращается на правильный URL-адрес, но если пользователь входит в свою учетную запись PayPal и делает платеж, PayPal возвращается в мой код именно в этот момент:

public async Task<IActionResult> PayPalReturnCallback(string paymentId, string token, string payerId)
{
    try
    {
        var payPalManager = PayPalManager.GetInstance(_payPalConfig);
        var paymentUrl = await payPalManager.ExecutePayment(paymentId, payerId);
    } 
    catch(Exception ex)
    {
        return RedirectToAction("PaymentFailed","Checkout",new {paymentId, ex.Message});
    }

    Order order = new Order(_orderDl);
    await order.LoadOrderByPayPalCode(paymentId);
    order.ExecutePaymentTimeStamp = DateTime.Now;
    await order.Save();

    return RedirectToAction("PaymentSuccess","Checkout",new { order.Id});
}

и вызывает исключение, когда прибывает в метод payPalManager.ExecutePayment с этим сообщением:

Произошла одна или несколько ошибок. ({"error": "invalid_client", "error_description": "Аутентификация клиента не удалась"})

, но аутентификация клиента также подойдет, потому что в противном случае он не будет подключаться к PayPal в первый раз. Мне кажется, что каким-то образом следует использовать возвращаемый параметр «token», но я не знаю, где.

Любая помощь более чем приветствуется

1 Ответ

0 голосов
/ 03 апреля 2020

Наконец-то я нашел решение. В этой библиотеке есть ДВА места, где разработчик должен указать, что это не так в области песочницы (или в рабочей среде), первое - когда он создает запрос, а второе - когда он делает последний платеж. Измените, что ошибка клиента исчезла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...