Paypal 权限 API Java SDK : GetBasicPersonalData:Getting Authentication failed

标签 paypal paypal-adaptive-payments

场景:

我在沙盒模式下使用来自 x.com 的最新权限 API 版本 1.1.93。我正在使用沙盒凭据来测试功能。

问题::

当我使用 Junit 运行时,getBasicPersonalData 和 getAdvancedPersonalData 不工作。 (虽然 getPermissions 和 cancelPermissions 工作正常)

我得到的 API 凭据不正确。虽然细节是 100% 正确的

当我使用相同的凭证运行 sdk 提供的权限示例 war 文件时,它工作正常。

*我什至复制粘贴了 sdk_config.properties 文件以确保我使用的是正确的属性。*

我还对比了header、paypload和request信息,看起来都一模一样。

*PS:请不要说我使用了错误的凭据,检查了 1000 次,我只使用沙盒凭据,我已经被告知很多次了:-) *

下面是我调用 GetBasicPersonalData 时得到的值,使用调试来获取这些值

header 值

{X-PAYPAL-REQUEST-DATA-FORMAT=NV, X-PAYPAL-APPLICATION-ID=APP-80W284485P519543T, X-PAYPAL-DEVICE-IPADDRESS=127.0.0.1, X-PAYPAL-REQUEST-SOURCE=sdk-permissions-java-1.1.93, X-PAYPAL-AUTHORIZATION=token=uJvLxPmOCPVQbfVSxkH29I53Q6c5gd6XvY40ygCQxpbpOJOWrWQ-nA,signature=4cpQsfOD7d2g39P5Crq6yPbIYLE=,timestamp=1349383673, X-PAYPAL-SANDBOX-EMAIL-ADDRESS=Platform.sdk.seller@gmail.com, X-PAYPAL-RESPONSE-DATA-FORMAT=NV}

负载

requestEnvelope.errorLanguage=en_US&attributeList.attribute(0)=http://axschema.org/namePerson/first&attributeList.attribute(1)=http://axschema.org/namePerson/last&attributeList.attribute(2)=http://axschema.org/contact/email&attributeList.attribute(3)=http://schema.openid.net/contact/fullname&attributeList.attribute(4)=http://axschema.org/company/name&attributeList.attribute(5)=http://axschema.org/contact/country/home&attributeList.attribute(6)=https://www.paypal.com/webapps/auth/schema/payerID&

响应

responseEnvelope.timestamp=2012-10-04T13%3A48%3A48.416-07%3A00&responseEnvelope.ack=Success&responseEnvelope.correlationId=acc87fc89aad2&responseEnvelope.build=2210301&response.personalData(0).personalDataKey=http%3A%2F%2Faxschema.org%2Fcompany%2Fname&response.personalData(0).personalDataValue=Invoice+Sender+%27s+Test+Store&response.personalData(1).personalDataKey=http%3A%2F%2Faxschema.org%2Fcontact%2Fcountry%2Fhome&response.personalData(1).personalDataValue=GB&response.personalData(2).personalDataKey=http%3A%2F%2Faxschema.org%2Fcontact%2Femail&response.personalData(2).personalDataValue=invsd2_1349373629_biz%40bakingit.com&response.personalData(3).personalDataKey=http%3A%2F%2Faxschema.org%2FnamePerson%2Ffirst&response.personalData(3).personalDataValue=Invoice&response.personalData(4).personalDataKey=http%3A%2F%2Faxschema.org%2FnamePerson%2Flast&response.personalData(4).personalDataValue=Sender+&response.personalData(5).personalDataKey=http%3A%2F%2Fschema.openid.net%2Fcontact%2Ffullname&response.personalData(5).personalDataValue=Invoice+Sender+&response.personalData(6).personalDataKey=https%3A%2F%2Fwww.paypal.com%2Fwebapps%2Fauth%2Fschema%2FpayerID&response.personalData(6).personalDataValue=H4KY78FSAPYF4

现在,当我使用来自 Junit 测试的相同访问 token 和 token secret 时,我得到的结果低于等效值,并给出错误“身份验证失败。 API 凭据不正确。”

我正在使用完全相同的凭据

标题

{X-PAYPAL-REQUEST-DATA-FORMAT=NV, X-PAYPAL-APPLICATION-ID=APP-80W284485P519543T, X-PP-AUTHORIZATION=token=uJvLxPmOCPVQbfVSxkH29I53Q6c5gd6XvY40ygCQxpbpOJOWrWQ-nA,signature=6xe5sVZcHtt2YZtnOBqyor98Tl0=,timestamp=1349383983, X-PAYPAL-DEVICE-IPADDRESS=127.0.0.1, X-PAYPAL-REQUEST-SOURCE=sdk-merchant-java-1.1.93, X-PAYPAL-SANDBOX-EMAIL-ADDRESS=Platform.sdk.seller@gmail.com, X-PAYPAL-RESPONSE-DATA-FORMAT=NV}

负载

requestEnvelope.errorLanguage=en_US&attributeList.attribute(0)=http://axschema.org/namePerson/first&attributeList.attribute(1)=http://axschema.org/namePerson/last&attributeList.attribute(2)=http://axschema.org/contact/email&attributeList.attribute(3)=http://schema.openid.net/contact/fullname&attributeList.attribute(4)=http://axschema.org/company/name&attributeList.attribute(5)=http://axschema.org/contact/country/home&attributeList.attribute(6)=https://www.paypal.com/webapps/auth/schema/payerID&

响应

responseEnvelope.timestamp=2012-10-04T13%3A54%3A51.690-07%3A00&responseEnvelope.ack=Failure&responseEnvelope.correlationId=e6ea99b5f3156&responseEnvelope.build=2210301&error(0).errorId=520003&error(0).domain=PLATFORM&error(0).subdomain=Application&error(0).severity=Error&error(0).category=Application&error(0).message=Authentication+failed.+API+credentials+are+incorrect.

最佳答案

我们看到在 junit 测试用例中传递的 header 不正确,这应该是问题所在。

{X-PAYPAL-REQUEST-DATA-FORMAT=NV,X-PAYPAL-APPLICATION-ID=APP-80W284485P519543T,X-PP-AUTHORIZATION=token=uJvLxPmOCPVQbfVSxkH29I53Q6c5gd6XvY40ygCQxpbpPO JOWrWQ-nA,签名=6xe5sVZcHtt2YZtnOBqyor98Tl0 =,timestamp=1349383983,X-PAYPAL-DEVICE-IPADDRESS=127.0.0.1,X-PAYPAL-REQUEST-SOURCE=sdk-merchant-java-1.1.93,X-PAYPAL-SANDBOX-EMAIL-ADDRESS=Platform.sdk。 seller@gmail.com, X-PAYPAL-RESPONSE-DATA-FORMAT=NV}

X-PP-AUTHORIZATION 更改为 X-PAYPAL-AUTHORIZATION,这应该可以为您解决问题。请引用您从 SDK 获得的 header 值。

关于 Paypal 权限 API Java SDK : GetBasicPersonalData:Getting Authentication failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12743852/

相关文章:

express - Paypal 快速结账 => 错误 : Security header is not valid

asp.net - PayPal API,账户验证

Paypal 嵌入式流程 - POP 窗口被阻止

paypal - 处理延迟的 PayPal 付款

Paypal自适应支付(并行)550001错误

php - Paypal 为定期付款设置无限周期

paypal - 创建一个 PayPal 按钮以接受在线发票付款

php - PayPal 的 CallPaymentDetails 函数

api - WHMCS - 如何获得 Paypal 的付款链接

ssl - 使用站点范围的 ssl 我真的需要加密明文 paypal 按钮吗?