Dotnet Core PayPal GetAccessToken возвращает 401 для живого, но работает на песочнице - PullRequest
0 голосов
/ 07 июня 2018

пытается запустить PayPal на основном веб-сайте asp.net, но я не могу получить токен доступа, я получаю PayPal.HttpException: удаленный сервер возвратил ошибку: (401) Unauthorized.

вот проблемный раздел кода:

        Dictionary<string, string> configurationMap = new Dictionary<string, string>();
        configurationMap.Add("clientId", _options.PayPalClientId);
        configurationMap.Add("clientSecret", _options.PayPalClientSecret);
        configurationMap.Add("mode", _options.PayPalMode);

        _logger.Info($"paypal data: mode={_options.PayPalMode}, client id={_options.PayPalClientId}");
        var accessToken = new OAuthTokenCredential(_options.PayPalClientId, _options.PayPalClientSecret, configurationMap).GetAccessToken();
        var apiContext = new APIContext(accessToken) { Config = configurationMap };

используемые мной пакеты nuget:

<PackageReference Include="PayPal" Version="2.0.0-rc2"/>
<PackageReference Include="PayPalCore" Version="1.0.0"/>

просматривает журнал, чтобы убедиться, что mode = live и clientId - этоживой (так что я уверен, что секрет также был загружен правильно).

этот код отлично работает на моей рабочей станции и на моем dev-сервере (с IIS и kestrel), используя sandbox clientId / secret.однако на рабочем сервере в AWS я получаю эту ошибку.запустив почтальон на windows-сервере AWS, чтобы убедиться, что он может взаимодействовать с API-интерфейсами PayPal, я могу получить токен доступа, так что это не проблема брандмауэра.

какие-либо другие отведения?

1 Ответ

0 голосов
/ 08 июня 2018

для тех, у кого возникла та же проблема, или интересно, какой PayPal SDK использовать для основного приложения dotnet. Это помогло:

<PackageReference Include="PayPal.SDK.NETCore" Version="1.9.1.2" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...