我正在使用paypal权限api通过paypal验证用户并获得一些权限。
问题是有时/Permissions/GetBasicPersonalData
调用返回“身份验证失败.API凭据不正确”。即使我通过成功拨打/Permissions/GetAccessToken
奇怪的是,这是非常不可预测的。它有时会失败,有时会使用沙箱,总是在生产失败(现场支付宝)。
当它工作时它似乎每次都有效,当它失败时它每次都会失败,直到它发生变化。
答案 0 :(得分: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)