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.errorLanguageclientDetails.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 自适应付款 - 预批准请求导致“无效请求”错误的主要内容,如果未能解决你的问题,请参考以下文章

自适应付款和预先批准/定期付款

付款前检查资金是不是充足(Paypal 自适应付款)

PayPal 自适应付款错误 您无权隐式执行此付款

Paypal 使用嵌入式灯箱预先批准付款

使用 rails 和 active_paypal_adaptive_payment 执行预批准付款

如何使用 PayPal 向商家请求和发送付款(自适应付款?)