【问题标题】:PayPal Adaptive Payments - Preapproval request results in "Invalid request" errorPayPal 自适应付款 - 预批准请求导致“无效请求”错误
【发布时间】: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"
    }
  ]
}

感谢任何反馈。

【问题讨论】:

    标签: python paypal paypal-adaptive-payments


    【解决方案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 时,我传递的参数将是第一件事。

    【讨论】:

      猜你喜欢
      • 2017-11-17
      • 2021-10-11
      • 1970-01-01
      • 2017-03-21
      • 2012-09-25
      • 2014-08-25
      • 2013-12-26
      • 2017-02-02
      • 2013-03-20
      相关资源
      最近更新 更多