2013-05-21 3 views
0

Я использую paypal разрешения api для аутентификации пользователя через paypal и получения некоторых разрешений.Paypal/Permissions/GetBasicPersonalData сбой случайным образом: «Ошибка аутентификации. Учетные данные API неверны».

Проблема заключается в том, что иногда вызов /Permissions/GetBasicPersonalData возвращает «Ошибка аутентификации. Учетные данные API неверны». хотя я получил токен и секрет от успешного звонка до /Permissions/GetAccessToken

Странно, но это очень непредсказуемо. Иногда это бывает неудачно и иногда работает с песочницей, всегда сбой при производстве (live paypal).

Когда он работает, он работает каждый раз, когда он терпит неудачу, он начинает сбой каждый раз, то есть до тех пор, пока он не изменится.

+0

Не может быть связано с cookies браузера? Это происходит даже после того, как вы очистите всю историю просмотров и файлы cookie? –

+0

происходит в вызове API, а не в браузере. Я делаю это с консоли. –

+0

В этом случае похоже, что это может быть проблемой с вашим интернет-провайдером (просто гадать) ... Лучше всего было бы попробовать из другой сети, когда это произойдет; например, когда вы снова сталкиваетесь с проблемой, попробуйте сделать вызов API из AWS или что-то еще ... Это имеет смысл? –

ответ

0

Paypal делает некоторые пользовательские кодирования и строковых манипуляций при создании OAuth подписи, например, он будет кодировать . в %2E первый, и это будет позже преобразованный в нижний регистр строки %2e.

Если вы пишете собственную функцию генерации подписи PayPal OAuth, и вы пропустили некоторые шаги, ваша подпись будет недействительной. «Случайная» вещь, о которой вы описали, вероятно, потому, что эти специальные символы не гарантируются в token/token secret. Когда их там нет, это будет успех и наоборот.

Я сделал это, переведя бит в бит из официального Ruby SDK от Paypal. (https://github.com/paypal/sdk-core-ruby/blob/master/lib/paypal-sdk/core/util/oauth_signature.rb)

Смежные вопросы