PayPal 自适应付款 - 预批准请求导致“无效请求”错误
Posted
技术标签:
【中文标题】PayPal 自适应付款 - 预批准请求导致“无效请求”错误【英文标题】:PayPal Adaptive Payments - Preapproval request results in "Invalid request" error 【发布时间】:2013-09-15 13:24:09 【问题描述】:我无法弄清楚我的Preapproval
HTTP POST 请求发生了什么。我只是想对 PayPal 的Adaptive Payments API 进行基本调用,特别是Preapproval
调用。而 PayPal 错误 580001
“无效请求”本身并没有太大帮助。
请求标头(基于我的 Sandbox 的帐户凭据,我将其更改为 xxx
):
'X-PAYPAL-REQUEST-DATA-FORMAT': 'JSON',
'X-PAYPAL-SECURITY-PASSWORD': 'xxx',
'X-PAYPAL-RESPONSE-DATA-FORMAT': 'JSON',
'X-PAYPAL-SECURITY-SIGNATURE': 'xxx',
'X-PAYPAL-SECURITY-USERID': 'xx',
'X-PAYPAL-APPLICATION-ID': 'APP-80W284485P519543T'
我的请求负载(HTTP POST,以 JSON 编码的正文):
"requireInstantFundingSource": "TRUE",
"returnUrl": "http://www.google.com/?paypal=ok",
"maxTotalAmountOfAllPayments": 1002,
"maxNumberOfPaymentsPerPeriod": 1,
"endingDate": "2014-03-14T16:49:36+0000",
"requestEnvelope.errorLanguage": "en_US",
"clientDetails.applicationId": "XXX",
"cancelUrl": "http://www.google.com/paypal=cancel",
"startingDate": "2013-09-15T16:49:36+0000",
"feesPayer": "PRIMARYRECEIVER",
"currencyCode": "SEK"
以上 POST 正文发布到:
https://svcs.sandbox.paypal.com/AdaptivePayments/Preapproval
Paypal 的回复(“美化”以便理解):
"responseEnvelope":
"ack": "Failure",
"timestamp": "2013-09-10T09:56:43.031-07:00",
"build": "6941298",
"correlationId": "26d55e6bfcaa0"
,
"error": [
"category": "Application",
"domain": "PLATFORM",
"severity": "Error",
"message": "Invalid request: 0",
"subdomain": "Application",
"errorId": "580001"
]
感谢任何反馈。
【问题讨论】:
【参考方案1】:确定已修复。怎么样?
修复 #1
参数requestEnvelope.errorLanguage
和clientDetails.applicationId
需要自己“JSONified”成对象,如:
"requestEnvelope":
"errorLanguage": "en_US"
,
和
"clientDetails":
"applicationId": "APP-XXXXXXXXXXXXX"
,
分别。
修复 #2
日期格式;日期格式应该是2014-03-15T20:14:38.007+00:00
,而不是2014-03-14T20:14:38+0000
,因为我正在传递。注意毫秒,以及 utc 偏移中带有冒号的时区。
下次出现Invalid request
时,我传递的参数将是第一件事。
【讨论】:
以上是关于PayPal 自适应付款 - 预批准请求导致“无效请求”错误的主要内容,如果未能解决你的问题,请参考以下文章