2013-05-21 60 views
0

我正在使用PayPal权限api通过PayPal验证用户并获得一些权限。Paypal/Permissions/GetBasicPersonalData随机失败,“身份验证失败,API凭据不正确。”

问题是,有时/Permissions/GetBasicPersonalData调用返回“身份验证失败,API凭据不正确。”即使我得到了令牌和秘密从一个成功的电话/Permissions/GetAccessToken

但奇怪的是,它是非常不可预知的。它有时会失败,有时候与沙箱一起工作,总是在生产中失败(实时贝宝)。

当它工作时,它似乎每次都有效,当它失败时,它每次都开始失败,直到它改变。

+0

它可能与浏览器cookies有关吗?即使您清除所有浏览记录和Cookie后,它是否也会发生? –

+0

它发生在一个API调用中,而不是在浏览器中。我正在从控制台执行。 –

+0

在这种情况下,它看起来很可能是你的ISP的一个问题(只是猜测)...当发生这种情况时,最好是从另一个网络尝试;例如当你再次面对这个问题时,尝试从AWS或其他什么的API调用...这有道理吗? –

回答

0

PayPal是做一些自定义编码和字符串操作而产生的OAuth签名,例如,它将编码.%2E第一和它以后转换将是小写字符串%2e

如果您正在编写自己的Paypal OAuth签名生成函数,并且错过了某些步骤,那么您的签名将无效。您所描述的“随机”事情可能是因为这些特殊字符不能保证显示在token/token secret中。当他们不在时,它会成功,反之亦然。

我通过从Paypal的官方Ruby SDK中逐位翻译来实现它。 (https://github.com/paypal/sdk-core-ruby/blob/master/lib/paypal-sdk/core/util/oauth_signature.rb