Paypal /Permissions/GetBasicPersonalData случайно завершается с "Аутентификация не удалась. Учетные данные API неверны".

Я использую PayPal разрешения API для проверки подлинности пользователя через PayPal и получить некоторые разрешения.

Проблема в том, что иногда /Permissions/GetBasicPersonalData call return "Аутентификация не удалась. Учетные данные API неверны." хотя я получил токен и секрет от успешного звонка /Permissions/GetAccessToken

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

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

1 ответ

При создании подписи OAuth Paypal выполняет пользовательское кодирование и манипуляции со строками, например, кодирует . в %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)

Другие вопросы по тегам